找回密码
 加入
搜索
查看: 1526|回复: 3

[网络通信] 二进制数据读取转换(高低位问题)

[复制链接]
发表于 2019-6-4 09:42:48 | 显示全部楼层 |阅读模式
本帖最后由 auto 于 2019-6-4 09:46 编辑

二进制数据读取转换(高低位问题)(存储是16进制)4个字节表示Int)
例如
01000000  = 1  低位在前,高位在后
02000000  = 2  低位在前,高位在后

直接用binaryToString转换后数字是错。用dec转换也是错的 dec结果是0
发表于 2019-6-4 20:34:44 | 显示全部楼层
既然知道这个规律,把数据前后调换一下不就可以了?
发表于 2019-6-4 22:36:27 | 显示全部楼层
$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-5 16:44:29 | 显示全部楼层

不行吧,你这个字符串操作,我那直接读取二进制代码,回我把二进制文件传上来吧
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-23 20:37 , Processed in 0.075371 second(s), 20 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表