箱号校验

集装箱箱号校验位怎么算(ISO 6346)

集装箱号共 11 位:前 3 位是箱主代码(字母),第 4 位是设备类别(字母,U 表示集装箱),接着 6 位数字序列号,最后 1 位是校验位。校验位不是随便定的,是前 10 位按 ISO 6346 规则算出来的——本页用 ISO 6346 标准给的示例箱号 CSQU3054383,把这个计算过程逐步拆开,数字来自本站箱号校验工具自己的计算函数。

第一步:字母查值表

前 4 位字母按下表查出对应数值(A 从 10 开始按字母顺序编号,跳过 11、22、33 这三个 11 的倍数):

ABCDEFGHIJKLM
10121314151617181920212324
NOPQRSTUVWXYZ
25262728293031323435363738

第二步:每一位乘以权重再求和

从左往右第 1 位(i=0)权重是 2⁰=1,第 2 位权重 2¹=2,以此类推到第 10 位 2⁹=512;第 5~10 位是数字,直接代入本身的值:

位置字符数值权重 2ⁿ乘积
第 1 位C13113
第 2 位S30260
第 3 位Q284112
第 4 位U328256
第 5 位331648
第 6 位00320
第 7 位5564320
第 8 位44128512
第 9 位33256768
第 10 位885124096
求和6185

第三步:取模两次,得到校验位

校验位 = (求和 ÷ 11 的余数) ÷ 10 的余数:6185 % 11 = 3,3 % 10 = 3。CSQU3054383 第 11 位实际写的是 3,和算出来的 3 一致,校验通过(工具判定:正确)。

常见问题

算出来的校验位和箱号第 11 位不一样怎么办?

说明抄录时某一位录错了——常见是输错一位数字、相邻两位顺序颠倒,或者把数字 0 抄成字母 O。请回到提单、设备交接单上核对原始箱号,不要直接把校验位改成算出来的数字;有疑问用箱号校验批量校验一遍更快。

为什么字母对照值要跳过 11、22、33?

这是 ISO 6346 标准本身的规定,跳过 11 的倍数是为了避免数值和后面的模 11 运算产生规律性冲突,具体设计意图以标准原文为准;使用时记住查表结果就行,不需要重新推导。

校验通过就说明箱号一定真实存在吗?

不一定。校验位只能发现大部分录入错误,箱号是否真实存在、对应哪艘船哪个航次,还要以船公司或码头的数据为准。