集装箱货柜号码 公式算法
為了方便集裝箱的管理,國際標準化組織(ISO)擬定了集裝箱標志方案。標志內(nèi)容:箱主代碼、順序號和核對數(shù)
箱主代碼:集裝箱所有者的代碼,它由4位拉丁字母表示;前3位由箱主自己規(guī)定,并向國際集裝箱局登記;第4位字母為U,標志海運集裝箱代號。例如中國遠洋運輸(集團)公司的箱主代碼為:COSU
順序號:為集裝箱的編號,按照國際標準(GB1836-85)的規(guī)定,用6位阿拉伯數(shù)字表示,不足6位的則以0補之。
核對數(shù):用于計算機核對箱主號與順序號記錄的正確性。核對號一般于順序號之后,用一位阿拉伯數(shù)字表示,并加方框以醒目。
核對號是由箱主代碼的四位字母和順序號的六位數(shù)字通過以下方式換算而得。具體換算腳驟如下:
首先,將表示箱主代碼的四位字母轉(zhuǎn)化成相應的等效數(shù)字,字母和等效數(shù)字的對應關(guān)系見下表:
A-10 B-12 C-13 D-14 E-15 F-16 G-17 H-18 I-19 J-20 K-21 L-23 M-24 N-25 O-26 P-27 Q-28 R-29 S-30 T-31 U-32 V-34 W-35 X-36 Y-37 Z-38
從表中可以看出,去掉了11及其倍數(shù)的數(shù)字,這是因為后面的計算將把11作為模數(shù)。然后,將前四位字母對應的等效數(shù)字和后面的順序號的數(shù)字(共計10位)采用加權(quán)系數(shù)法進行計算求和。
最后,以S除以模數(shù)11,求其余數(shù),即得核對號
例如,求中國遠洋運輸公司的集裝箱COSU800121的核對號:
首先,對應的數(shù)字是:13—26—30—32—8—0—0—1—2—1
然后加權(quán)求和,最后,除以11取余數(shù):見圖三;余數(shù)為5
所以核對號為5。
故該集裝箱的號碼為:COSU8001215
最后貼上js代碼
JsHelper.isContainerNo = function(ContainerNo)
{
if (ContainerNo.length != 11) return false;
ContainerNo = ContainerNo.toLowerCase();
var b = 0;
var c = 0;
for (var i = 0; i < 10; i++)
{
var s = ContainerNo.substr(i, 1)
switch (s)
{
case "0":
b = 0
break; ;
case "1":
b = 1;
break;
case "2":
b = 2;
break;
case "3":
b = 3;
break;
case "4":
b = 4;
break;
case "5":
b = 5;
break;
case "6":
b = 6;
break;
case "7":
b = 7;
break;
case "8":
b = 8;
break;
case "9":
b = 9;
break;
case "a":
b = 10;
break;
case "b":
b = 12;
break;
case "c":
b = 13;
break;
case "d":
b = 14;
break;
case "e":
b = 15;
break;
case "f":
b = 16;
break;
case "g":
b = 17;
break;
case "h":
b = 18;
break;
case "i":
b = 19;
break;
case "j":
b = 20;
break;
case "k":
b = 21;
break;
case "l":
b = 23;
break;
case "m":
b = 24;
break;
case "n":
b = 25;
break;
case "o":
b = 26;
break;
case "p":
b = 27;
break;
case "q":
b = 28;
break;
case "r":
b = 29;
break;
case "s":
b = 30;
break;
case "t":
b = 31;
break;
case "u":
b = 32;
break;
case "v":
b = 34;
break;
case "w":
b = 35;
break;
case "x":
b = 36;
break;
case "y":
b = 37;
break;
case "z":
b = 38;
break;
}
c += Math.round(Math.pow(2, i)) * b;
}
if ((c % 11) % 10 != ContainerNo.substr(10, 1))
{
return false;
}
else
{
return true;
}
}
總結(jié)
以上是生活随笔為你收集整理的集装箱货柜号码 公式算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 链接器相关的一些基本问题
- 下一篇: 绝地求生僵尸模式规则介绍 绝地求生僵尸模