user11 发表于 2012-4-7 23:40:41

【已解决】C语言转AU3,AU3效验PIN最后一位

本帖最后由 user11 于 2012-4-9 23:02 编辑

PIN码第八位校验值的计算方法【int】
源码是C,AU3不熟悉,无符号的整型是?AU3输出 和 C 不一样, 。Int main()
{
unsigned Int wps_pin_checksum(unsigned Int pin);
Int Pin=1234567;
printf("Checknum:%d\n",wps_pin_checksum(pin));
Return 0;
}
unsigned int wps_pin_checksum(unsigned int pin)
{
unsigned int accum = 0;
while (pin)
{
accum += 3 * (pin % 10);
pin /= 10;
accum += pin % 10;
pin /= 10;
}

return (10 – accum % 10) % 10;
}
Dim $pin, $accum=0

$pin=Int("1234567")

While $pin
$accum+=3*Mod($pin,10)
$pin/=10
$accum+=Mod($pin,10)
$pin/=10
WEnd

$result=Mod(10-Mod($accum,10),10)

MsgBox(0,"",Int($result))

user3000 发表于 2012-4-8 00:29:25

回复 1# user11

au3 变量可以说不分类型.
要用无符号整型, 直接赋值 正整数, 然后在运算过程中要自己加相应 判断 了!

happytc 发表于 2012-4-8 00:33:34

回复 1# user11

才8位,就不用纠结于无符号整形数了,这里有无符号计算结果都是一样的。

若你真想要搞无符号整数,可用定义个结构来做,象:DllStructCreate("UINT")

Ycxw2008 发表于 2012-4-8 01:20:23

本帖最后由 Ycxw2008 于 2012-4-8 01:22 编辑

{:face (238):}楼主用的哪个编译器来编译c的 能编译Int{:face (370):}

user11 发表于 2012-4-8 10:42:42

回复 3# happytc


是不是 我的AU3写的有错误,实际算出来和C 结果不一样的。

Ycxw2008 发表于 2012-4-8 12:33:45

本帖最后由 Ycxw2008 于 2012-4-8 12:40 编辑

回复 5# user11

发错

user11 发表于 2012-4-8 12:42:03

本帖最后由 user11 于 2012-4-8 12:47 编辑

回复 6# Ycxw2008

AU3可以直接用+=吗??AU3我只是换了一个写法。 看了一下帮助。。原来可以。。。。我错了!

Ycxw2008 发表于 2012-4-8 12:48:42

回复 7# user11


    au3 有+= 不过好像不是这个问题
页: [1]
查看完整版本: 【已解决】C语言转AU3,AU3效验PIN最后一位