【已解决】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)) 回复 1# user11
au3 变量可以说不分类型.
要用无符号整型, 直接赋值 正整数, 然后在运算过程中要自己加相应 判断 了! 回复 1# user11
才8位,就不用纠结于无符号整形数了,这里有无符号计算结果都是一样的。
若你真想要搞无符号整数,可用定义个结构来做,象:DllStructCreate("UINT") 本帖最后由 Ycxw2008 于 2012-4-8 01:22 编辑
{:face (238):}楼主用的哪个编译器来编译c的 能编译Int{:face (370):} 回复 3# happytc
是不是 我的AU3写的有错误,实际算出来和C 结果不一样的。 本帖最后由 Ycxw2008 于 2012-4-8 12:40 编辑
回复 5# user11
发错 本帖最后由 user11 于 2012-4-8 12:47 编辑
回复 6# Ycxw2008
AU3可以直接用+=吗??AU3我只是换了一个写法。 看了一下帮助。。原来可以。。。。我错了! 回复 7# user11
au3 有+= 不过好像不是这个问题
页:
[1]