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

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

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

请教:2位十六进制数字转成二进制,还能有更好的写法吗,我写的太烂了
  1.         $b1 = GUICtrlRead($Input11)
  2.         Sleep(100)
  3.         $hex = $b1
  4.         $str=StringMid($hex,1,1)
  5.         switch $str
  6.                 case '0'
  7.                         $bin='0000'
  8.                 case '1'
  9.                         $bin='0001'
  10.                 case '2'
  11.                         $bin='0010'
  12.                 case '3'
  13.                         $bin='0011'
  14.                 case '4'
  15.                         $bin='0100'
  16.                 case '5'
  17.                         $bin='0101'
  18.                 case '6'
  19.                         $bin='0110'
  20.                 case '7'
  21.                         $bin='0111'
  22.                 case '8'
  23.                         $bin='1000'
  24.                 case '9'
  25.                         $bin='1001'
  26.                 case 'a'
  27.                         $bin='1010'
  28.                 case 'b'
  29.                         $bin='1011'
  30.                 case 'c'
  31.                         $bin='1100'
  32.                 case 'd'
  33.                         $bin='1101'
  34.                 case 'e'
  35.                         $bin='1110'
  36.                 case 'f'
  37.                         $bin='1111'
  38.         endswitch
  39.         $str2=StringMid($hex,2,1)
  40.         switch $str2
  41.                 case '0'
  42.                         $bin2='0000'
  43.                 case '1'
  44.                         $bin2='0001'
  45.                 case '2'
  46.                         $bin2='0010'
  47.                 case '3'
  48.                         $bin2='0011'
  49.                 case '4'
  50.                         $bin2='0100'
  51.                 case '5'
  52.                         $bin2='0101'
  53.                 case '6'
  54.                         $bin2='0110'
  55.                 case '7'
  56.                         $bin2='0111'
  57.                 case '8'
  58.                         $bin2='1000'
  59.                 case '9'
  60.                         $bin2='1001'
  61.                 case 'a'
  62.                         $bin2='1010'
  63.                 case 'b'
  64.                         $bin2='1011'
  65.                 case 'c'
  66.                         $bin2='1100'
  67.                 case 'd'
  68.                         $bin2='1101'
  69.                 case 'e'
  70.                         $bin2='1110'
  71.                 case 'f'
  72.                         $bin2='1111'
  73.         endswitch       
  74.         $bin22 = $bin & $bin2
  75.         ToolTip($bin22, 50,0)
  76.         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 编辑

[au3]#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[/au3]
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2026-9-22 14:44 , Processed in 0.067495 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2026 Discuz! Team.

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