Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm TNT.com追踪号码使用什么校验和(如果有)?_Algorithm_Validation_Checksum - Fatal编程技术网

Algorithm TNT.com追踪号码使用什么校验和(如果有)?

Algorithm TNT.com追踪号码使用什么校验和(如果有)?,algorithm,validation,checksum,Algorithm,Validation,Checksum,我正在写一些软件来识别追踪号码(就像谷歌在搜索联邦快递或UPS号码时识别它们一样)。大多数快递员使用一个系统,比如“加权平均mod系统”,可以用来识别一个号码是否是有效的追踪号码。有人知道TNT托运编号是否使用了这种系统吗?如果是,它是什么?我已经请求TNT的支持,而代表告诉我他们不。。。但我想再核实一下。据我所知,没有。对不起 我想你是在验证输入的追踪号码以确保输入正确 --Kevin Fairchild好的,你问起这个问题已经三个月了,但我在写一个类似的软件时偶然发现了这个问题。据我们所知,

我正在写一些软件来识别追踪号码(就像谷歌在搜索联邦快递或UPS号码时识别它们一样)。大多数快递员使用一个系统,比如“加权平均mod系统”,可以用来识别一个号码是否是有效的追踪号码。有人知道TNT托运编号是否使用了这种系统吗?如果是,它是什么?我已经请求TNT的支持,而代表告诉我他们不。。。但我想再核实一下。

据我所知,没有。对不起

我想你是在验证输入的追踪号码以确保输入正确


--Kevin Fairchild

好的,你问起这个问题已经三个月了,但我在写一个类似的软件时偶然发现了这个问题。据我们所知,TNT使用追踪号码系统。这意味着他们的号码将是AA型。最后两个字母对应ISO/IATA国家代码。话虽如此,TNT使用WW,我们认为它必须代表全世界。这不是一个很好的答案,至少它不是关于校验和或算法,但它可能有用吗?希望有帮助


Willow

我相信有一个校验位/校验和位,可能是MOD10的衍生物,但不知道它是什么算法,被TNT称为第9位。 很高兴知道


我所知道的12345678校验位是5,22345678校验位是8。

这实际上是MOD 11 VB.net,我写的如下:

  Dim number As String = TextBox1.Text
    Dim A As Integer
    Dim B As Integer
    Dim C As Integer
    Dim check_digit As Integer

    A = (CInt(Mid(number, 1, 1)) * 8) + (CInt(Mid(number, 2, 1)) * 6) + (CInt(Mid(number, 3, 1)) * 4) + (CInt(Mid(number, 4, 1)) * 2) + (CInt(Mid(number, 5, 1)) * 3) + (CInt(Mid(number, 6, 1)) * 5) + (CInt(Mid(number, 7, 1)) * 9) + (CInt(Mid(number, 8, 1)) * 7)
    B = ((A \ 11) * 11)
    C = A - B

    If C = 0 Then
        check_digit = 5
    End If

    If C = 1 Then
        check_digit = 0
    End If

    If C <> 0 And C <> 1 Then
        check_digit = 11 - C
    End If

    MsgBox(number & check_digit)
尺寸编号为String=TextBox1.Text
将A变暗为整数
作为整数的Dim B
作为整数的Dim C
作为整数的Dim check_数字
A=(CInt(Mid,1,1))*8+(CInt(Mid,2,1))*6+(CInt(Mid,3,1))*4+(CInt(Mid,4,1))*2+(CInt(Mid,5,1))*3+(CInt(Mid,6,1))*5+(CInt(Mid,7,1))*9+(CInt(Mid,8,1))*7)
B=((A\11)*11)
C=A-B
如果C=0,则
检查数字=5
如果结束
如果C=1,则
检查数字=0
如果结束
如果是c0和c1,那么
检查数字=11-C
如果结束
MsgBox(数字和校验位)

它实际上是MOD 11 VB.net,我写的如下: