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

[效率算法] 2位十六进制数字转成二进制,还能有更好的写法吗,我写的太烂了 已解决

  [复制链接]
发表于 2012-11-2 21:00:51 | 显示全部楼层 |阅读模式
本帖最后由 ainizm 于 2013-4-30 11:02 编辑

请教:2位十六进制数字转成二进制,还能有更好的写法吗,我写的太烂了
        $b1 = GUICtrlRead($Input11)
        Sleep(100)
        $hex = $b1
        $str=StringMid($hex,1,1)
        switch $str
                case '0'
                        $bin='0000'
                case '1'
                        $bin='0001'
                case '2'
                        $bin='0010'
                case '3'
                        $bin='0011'
                case '4'
                        $bin='0100'
                case '5'
                        $bin='0101'
                case '6'
                        $bin='0110'
                case '7'
                        $bin='0111'
                case '8'
                        $bin='1000'
                case '9'
                        $bin='1001'
                case 'a'
                        $bin='1010'
                case 'b'
                        $bin='1011'
                case 'c'
                        $bin='1100'
                case 'd'
                        $bin='1101'
                case 'e'
                        $bin='1110'
                case 'f'
                        $bin='1111'
        endswitch
        $str2=StringMid($hex,2,1)
        switch $str2
                case '0'
                        $bin2='0000'
                case '1'
                        $bin2='0001'
                case '2'
                        $bin2='0010'
                case '3'
                        $bin2='0011'
                case '4'
                        $bin2='0100'
                case '5'
                        $bin2='0101'
                case '6'
                        $bin2='0110'
                case '7'
                        $bin2='0111'
                case '8'
                        $bin2='1000'
                case '9'
                        $bin2='1001'
                case 'a'
                        $bin2='1010'
                case 'b'
                        $bin2='1011'
                case 'c'
                        $bin2='1100'
                case 'd'
                        $bin2='1101'
                case 'e'
                        $bin2='1110'
                case 'f'
                        $bin2='1111'
        endswitch        
        $bin22 = $bin & $bin2
        ToolTip($bin22, 50,0)
        Sleep(500)
发表于 2012-11-2 21:23:38 | 显示全部楼层
本帖最后由 netegg 于 2012-11-2 21:31 编辑

[au3]#include<math.au3>
Local $a[16] = ['0','1','2','3','4','5','6','7','8','9', 'a','b','c','d','e','f']
For $i = 0 To 15
        For $j = 0 To 15
                ConsoleWrite(_IntToBin(_HexToInt($a[$i] & $a[$j]))&@cr)
        Next
Next[/au3]
 楼主| 发表于 2012-11-2 21:35:23 | 显示全部楼层
我刚刚试了,这2个函数运行不起来,是不是我的版本低了?
我的版本:3.3.0.0 ,Scite 汉化版本 1.78
发表于 2012-11-2 22:12:46 | 显示全部楼层
忘了更新没更新安装程序里的函数库了,exe的帮助里有
 楼主| 发表于 2012-11-2 22:22:49 | 显示全部楼层
运行提示 _IntToBin
和       _HexToInt    2个出错
发表于 2012-11-3 00:23:33 | 显示全部楼层
本帖最后由 3mile 于 2012-11-3 10:17 编辑

#include <String.au3>

$input = "42"
MsgBox(0,$input,_hextobin($input))
 
Func _hextobin($number)
Local $b1=Number(Binary('0x'&$number))
Local $out
While $b1
        $out&=BitAND($b1,1)
        $b1=BitShift($b1,1)
WEnd
Return  _StringReverse($out)
EndFunc
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-12-23 17:29 , Processed in 0.097522 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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