二进制数据读取转换(高低位问题)
本帖最后由 auto 于 2019-6-4 09:46 编辑二进制数据读取转换(高低位问题)(存储是16进制)4个字节表示Int)
例如
01000000= 1低位在前,高位在后
02000000= 2低位在前,高位在后
直接用binaryToString转换后数字是错。用dec转换也是错的 dec结果是0
既然知道这个规律,把数据前后调换一下不就可以了? $a = '01000000'
$b = '02000000'
$c = '0F000000'
$d = '00001000'
$e = 'FF000000'
$f = '64636261'
$g = '440D430D420D41'
MsgBox(0, $a, Dec(_ch($a)))
MsgBox(0, $b, Dec(_ch($b)))
MsgBox(0, $c, Dec(_ch($c)))
MsgBox(0, $d, Dec(_ch($d)))
MsgBox(0, $e, Dec(_ch($e)))
MsgBox(0, $f, BinaryToString('0x' & _ch($f)))
MsgBox(0, $g, BinaryToString('0x' & _ch($g)))
Func _ch($x = '')
$y = ''
$z=StringLen($x)/2
For $i = $z To 1 Step -1
$y &= StringMid($x, $i * 2 - 1, 1)
$y &= StringMid($x, $i * 2, 1)
Next
Return $y
EndFunc ;==>_ch
顽固不化 发表于 2019-6-4 22:36
不行吧,你这个字符串操作,我那直接读取二进制代码,回我把二进制文件传上来吧
页:
[1]