找回密码
 加入
搜索
查看: 2363|回复: 2

[AU3基础] 如何构造二进制数据类型[已解决]

[复制链接]
发表于 2010-10-19 15:11:19 | 显示全部楼层 |阅读模式
本帖最后由 xyold1 于 2010-10-19 15:48 编辑

像字符串以一对英文双引号括起来
数字添加前缀 0x用十六进制来表示
可是二进制数据应怎么写呢?

要将一系列计算结果以0和1的形式组合在一起,再对其进行位运算,可是如果用字符串“010101”的方式无法进行运算,基础有点差,帮一下,谢谢啦

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

 楼主| 发表于 2010-10-19 15:47:57 | 显示全部楼层
好象转成16进制就可以了

;===============================================================================

; 说明:   二进制转换为十六进制

; 语法:   _BinaryToHex($sBinStr[, $iLength = 0])

; 参数:   $sBinStr - 需要转换的二进制字符

;         $iLength - [可选] 返回长度

; 需要:   无

; 返回:   成功 - 十六进制字符

;         失败 - 空字符 "", 并设置 @error 到 1

; 备注:   限制: 输入最大 2147483647 个字符

;===============================================================================

Func _BinaryToHex($sBinStr, $iLength = 0)

        Local $sHexStr = ""

        If NOT StringRegExp($sBinStr, "^[01]+$") Then Return SetError(1, 0, "")

 

        While Mod(StringLen($sBinStr), 4)

                $sBinStr = "0" & $sBinStr

        WEnd

        For $i = 1 To StringLen($sBinStr) Step 4

                Switch StringMid($sBinStr, $i, 4)

                        Case "0000"

                                $sHexStr &= "0"

                        Case "0001"

                                $sHexStr &= "1"

                        Case "0010"

                                $sHexStr &= "2"

                        Case "0011"

                                $sHexStr &= "3"

                        Case "0100"

                                $sHexStr &= "4"

                        Case "0101"

                                $sHexStr &= "5"

                        Case "0110"

                                $sHexStr &= "6"

                        Case "0111"

                                $sHexStr &= "7"

                        Case "1000"

                                $sHexStr &= "8"

                        Case "1001"

                                $sHexStr &= "9"

                        Case "1010"

                                $sHexStr &= "A"

                        Case "1011"

                                $sHexStr &= "B"

                        Case "1100"

                                $sHexStr &= "C"

                        Case "1101"

                                $sHexStr &= "D"

                        Case "1110"

                                $sHexStr &= "E"

                        Case "1111"

                                $sHexStr &= "F"

                EndSwitch

        Next

 

        If $iLength = 0 Then

                While StringLeft($sHexStr, 1) = "0"

                        $sHexStr = StringTrimLeft($sHexStr, 1)

                WEnd

        Else

                For $i = 1 To $iLength - StringLen($sHexStr)

                        $sHexStr = "0" & $sHexStr

                Next

        EndIf

 

        Return $sHexStr

EndFunc   ;==>_BinaryToHex
发表于 2010-10-19 17:10:44 | 显示全部楼层
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 13:18 , Processed in 0.096988 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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