找回密码
 加入
搜索
查看: 2462|回复: 5

十进制与二进制可否互转换

[复制链接]
发表于 2009-4-7 17:09:28 | 显示全部楼层 |阅读模式
AUTOIT 是否可以将 十进制数 与 二进制数  进行相互转换?
 楼主| 发表于 2009-4-7 18:16:30 | 显示全部楼层

等待中

若100% 不行, 请大侠支个声, 免得小弟在傻等...
发表于 2009-4-7 19:34:35 | 显示全部楼层
完全可以。。
发表于 2009-4-7 19:35:45 | 显示全部楼层
好像没有十进制和二进制互转的函数.只有一个Binary
不过是可以实现的
发表于 2009-4-7 22:05:39 | 显示全部楼层
在au3里,二进制数是用十六进制来表示的。不过可以利用自编UDF来转换。

;===============================================================================
; 说明:   十进制转换为二进制
; 语法:   _DecToBinary($sDecStr[, $iLength = 0])
; 参数:   $sDecStr - 需要转换的十进制字符
;         $iLength - [可选] 返回长度
; 需要:   无
; 返回:   成功 - 二进制字符
;         失败 - 空字符 "", 并设置 @error 到 1
; 备注:   限制: 1125899906842622d / 3fffffffffffeh
;===============================================================================
Func _DecToBinary($sDecStr, $iLength = 0)
        Local $sBinStr = ""
        If NOT StringRegExp($sDecStr, "^\d+$") Then Return SetError(1, 0, "")

        If $sDecStr > 1125899906842622 Then Return SetError(1, 0, "")
        While $sDecStr > 0
                $sBinStr = Mod($sDecStr, 2) & $sBinStr
                $sDecStr = Int($sDecStr / 2)
        WEnd

        While StringLen($sBinStr) < $iLength
                $sBinStr = "0" & $sBinStr
        WEnd

        Return $sBinStr
EndFunc   ;==>_DecToBinary

;===============================================================================
; 说明:   二进制转换为十进制
; 语法:   _BinaryToDec($sBinStr)
; 参数:   $sBinStr - 需要转换的二进制字符
; 需要:   无
; 返回:   成功 - 十进制整数
;         失败 - 空字符 "", 并设置 @error 到 1
; 备注:   限制: 9223372036854775807d / 7fffffffffffffffh / [01]{1,63}b
;         注意: 输入超过 999999999999999d / 38d7ea4c67fffh 将输出指数形式
;===============================================================================
Func _BinaryToDec($sBinStr)
        Local $sDecStr = 0
        If NOT StringRegExp($sBinStr, "^[01]{1,63}$") Then Return SetError(1, 0, "")

        For $i = 1 To StringLen($sBinStr)
                $sDecStr = $sDecStr * 2 + StringMid($sBinStr, $i, 1)
        Next

        Return $sDecStr
EndFunc   ;==>_BinaryToDec
发表于 2009-4-7 22:27:00 | 显示全部楼层
学编程 布尔代数 是必修课
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-9-23 05:31 , Processed in 0.069598 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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