xiao_quande 2016-12-06 03:34 采纳率: 66.7%
浏览 1087

请求大神帮我写一个箱号验证的java代码

标准箱号构成基本概念:采用ISO6346(1995)标准。 标准集装箱箱号由11位编码组成,包括三个部分: 
1、 第一部分由4位英文字母组成。前三位代码 (Owner Code) 主要说明箱主、经营人,第四位代码说明类型,通常以字母"U"表示集装箱,若为"J"表明该集装箱为集装箱配件,若为"Z"为拖车平板。列如CBHU 开头的标准集装箱是表明箱主和经营人为中远集运。 
2、 第二部分由6位数字组成。是箱体注册码(Registration Code), 用于一个集装箱箱体持有的唯一标识。 
3、 第三部分为校验码(Check Digit)由前4位字母和6位数字经过校验规则运算得到,用于识别在校验时是否发生错误。即第11位数字。 
根据校验规则箱号的每个字母和数字都有一个运算的对应值。箱号的前10位字母和数字的对应值从0到Z对应数值为0到38,11、22、33不能对11取模数,所以要除去。 
2、第N位的箱号对应值再分别乘以2^(N-1) (N=1,2,3………..10) 例如:箱号为CBHU3202732的集装箱它的第1位代码为C, 它的代码值=代码的对应值×2^(1-1) =13x2^0=13×1=13。 类推第2位代码为B 
它的代码值=代码的对应值×2^(2-1) =12×2^1=12x2=24 以此类推得到箱号前10位代码的代码值。 将前10位的代码值乘积累加后对11取模 
箱号为CBHU3202732的集装箱前10位箱号的代码累加值=4061,取11的模后为2,就是这个箱号第11位的识别码的数值。 
以此类推,就能得到校验码。 
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

  • 写回答

1条回答 默认 最新

  • zqbnqsdsmd 2016-12-17 13:37
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 file converter 转换格式失败 报错 Error marking filters as finished,如何解决?
  • ¥15 Arcgis相交分析无法绘制一个或多个图形
  • ¥15 关于#r语言#的问题:差异分析前数据准备,报错Error in data[, sampleName1] : subscript out of bounds请问怎么解决呀以下是全部代码:
  • ¥15 seatunnel-web使用SQL组件时候后台报错,无法找到表格
  • ¥15 fpga自动售货机数码管(相关搜索:数字时钟)
  • ¥15 用前端向数据库插入数据,通过debug发现数据能走到后端,但是放行之后就会提示错误