This page is to help lost souls searching for the
algorithm for calculating the last digit (check digit) of the Identification
Number of Ocean Ship Containers (according to ISO 6346).
After reading through everything on that topic that showed up on Google and Google-groups
(spending several hairpulling days) we were unable to determine how exactly
to compute the last digit (CRC?) of the 11 digit (actually alphanumeric)
number.All available information on the subject was several commercial products that can calculate it for you (and want money), one algorithm that was incorrect (almost random hits) and a lot of sites that decided that the algorithm is too complicated to be worth mentioning (or attempting). We wrote a program in java swing which will clarify this mysterious algorithm - source code is available as well as demo. Algorithm:
|
||||||||||||||||||||||||||||
note* - above is the map (11, 22 and 33 are multiples of the modulus) note** - 10 is also a possible remainder when we divide by 11 and it must be replaced by 0 although it is recommended that it is not used at all. Exemple : Z E P U 0 0 3 7 2 5 maps to : 38 15 27 32 0 0 3 7 2 5 multiply by: 1 2 4 8 16 32 64 128 256 512 we get: 38 30 108 256 0 0 192 896 512 2560 add up: 4592 reminder mod 11: 4592 mod 11 = 5 Check digit is 5. |
||||||||||||||||||||||||||||
source code: CheckDigitApplet.java - the JApplet above ContCheckDigit.java -static function that does the algorithm CheckDigitCalculator.java - swing application LimitDocument.java AllCapsLimitDocument.java |
||||||||||||||||||||||||||||
Feel free to use it as you please - we are not
responsible for any harm caused by its use. (program was written in Netbeans so contact us if you need the .form file) |