The ISBN consists of 9 digits plus one check digit. To calculate the check digit you must multiply the last digit of the true number by 2, the last but 1 by 3 etc. and add these results. The number needed to fill this sum to the next multiple of 11 is the check digit. If it is 10, the check digit is replaced by the letter 'X' (historically correct of course).
The true ISBN consists of three parts that may be (but need not be) separated by hyphens. The first part indicates the language or country of origin (this varies), the second part indicates the publisher and the third part the book number. The size of each field is not fixed, for instance a very small publisher will have a large field for the publishers number and a very large publisher will have a small field, leaving much more space for book numbers. Also when a publishers book number space is exhausted he will be assigned a new publishers number (which may be but need not be smaller in size). A reprint will not receive a new ISBN, but a modified reprint should.
I know the following language/country codes (note that in some cases more than one code is assigned):
0 English ) (UK, US, Australia, NZ, Canada, 1 English ) South Africa, Zimbabwe) 2 French (France, Belgium, Canada, Switzerland) 3 German (Germany, Austria, Switzerland) 4 Japan 5 USSR 6 - 7 China 80 Czechoslovakia 81 India (see also 93) 82 Norway 83 Poland 84 Spain 85 Brazil 86 Yugoslavia -> Serbia and Mentenegro 87 Denmark 88 Italian (Italy, Switzerland) 89 South Korea 90 Dutch/Flemish 91 Sweden 92 International (Unesco and EEC) 93 India (see also 81) 94 - 950 Argentina (see also 987) 951 Finland (see also 952) 952 Finland (see also 951) 953 Croatia (see also 86) 954 Bulgaria 955 Sri Lanka 956 Chile 957 Taiwan (see also 986) 958 Colombia 959 Cuba 960 Greece 961 Slovenia (see also 86) 962 Hong Kong (see also 988) 963 Hungary 964 Iran 965 Israel 966 Ukraine (see also 5) 967 Malaysia (see also 983) 968 Mexico (see also 970) 969 Pakistan 970 Mexico (see also 968) 971 Philippines 972 Portugal (see also 989) 973 Romania 974 Thailand 975 Turkey 976 Carribean: AG,BS,BB,BZ,DM,GD,GY,JM,MS,KN,LC,VC,TT 977 Egypt 978 Nigeria 979 Indonesia 980 Venezuela 981 Singapore (see also 9971) 982 South Pacific: CK,FJ,KI,NR,NU,SB,TK,TO,TV,VU,WS 983 Malaysia (see also 967) 984 Bangladesh 985 Belarus (see also 5) 986 Taiwan (see also 957) 987 Argentina (see also 950) 988 Hong Kong (see also 962) 989 Portugal (see also 972) 990 - 991 - 992 - 993 - 9940 - 9941 - 9942 - 9943 - 9944 - 9945 Dominican Republic (see also 99934) 9946 North Korea 9947 Algeria (see also 9961) 9948 United Arab Emirates 9949 Estonia (see also 5 and 9985) 9950 Palestine 9951 Kosova 9952 Azerbaijan 9953 Lebanon 9954 Morocco (see also 9981) 9955 Lithuania (see also 5 and 9986) 9956 Cameroon 9957 Jordan 9958 Bosnia and Herzegovina (see also 86) 9959 Libya 9960 Saudi Arabia 9961 Algeria (see also 9947) 9962 Panama 9963 Cyprus 9964 Ghana (see also 9988) 9965 Kazakhstan (see also 5) 9966 Kenya 9967 Kyrgyzstan (see also 5) 9968 Costa Rica (see also 9977) 9969 - 9970 Uganda 9971 Singapore (see also 981) 9972 Peru 9973 Tunisia 9974 Uruguay 9975 Moldova (see also 5) 9976 Tanzania (see also 9987) 9977 Costa Rica (see also 9968) 9978 Ecuador 9979 Iceland 9980 Papua New Guinea 9981 Morocco (see also 9954) 9982 Zambia 9983 Gambia 9984 Latvia (see also 5) 9985 Estonia (see also 5 and 9949) 9986 Lithuania (see also 5 and 9955) 9987 Tanzania (see also 9976) 9988 Ghana (see also 9964) 9989 Macedonia (see also 86) 99900 - 99901 Bahrain 99902 Gabon (reserved) 99903 Mauritius 99904 Netherlands Antilles 99905 Bolivia 99906 Kuwait 99907 - 99908 Malawi 99909 Malta (see also 99932) 99910 Sierra Leone 99911 Lesotho 99912 Botswana 99913 Andorra (see also 99920) 99914 Suriname 99915 Maldives 99916 Namibia (see also 99945) 99917 Brunei Darussalam 99918 Faroe Islands 99919 Benin 99920 Andorra (see also 99913) 99921 Qatar 99922 Guatemala (see also 99939) 99923 El Salvador 99924 Nicaragua 99925 Paraguay 99926 Honduras 99927 Albania (see also 99943) 99928 Georgia (see also 5 and 99940) 99929 Mongolia 99930 Armenia (see also 5 and 99941) 99931 Seychelles 99932 Malta (see also 99909) 99933 Nepal (see also 99946) 99934 Dominican Republic (see also 9945) 99935 Haiti 99936 Bhutan 99937 Macau 99938 Srpska (see also 86) 99939 Guatemala (see also 99922) 99940 Georgia (see also 5 and 99928) 99941 Armenia (see also 5 and 99930) 99942 Sudan 99943 Albania (see also 99927) 99944 Ethiopia 99945 Namibia (see also 99916) 99946 Nepal (see also 99933) 99947 Tajikistan 99948 Eritrea 99949 - 9995 - 9996 - 9997 - 9998 - 9999 -
When encoded in an EAN-13 barcode the code is preceded by the digits 978 and the ISBN check-digit is not encoded.