IT天空

 找回密码
 加入我们

手机号码,快捷登录

搜索

[分享] AU3十六进制转换十进制函数--自己制作的

[复制链接]
nyjy_hx 发表于 2020-12-14 15:02:31 | 显示全部楼层 |阅读模式

本帖最后由 nyjy_hx 于 2020-12-14 17:01 编辑
  1. Func _ch10to16($t_10)
  2.         $ch16 = ""
  3.         If StringLen($t_10) > 0 And StringIsInt($t_10) And $tt > 0 Then
  4.                 $i = 0
  5.                 Local $t_16[2]
  6.                 If $t_10 > 15 Then
  7.                         While $t_10 / 16 > 1
  8.                                 $t_16[$i] = Mod($t_10, 16)
  9.                                 $t_10 = Floor($t_10 / 16)
  10.                                
  11.                                 $i += 1
  12.                                 ReDim $t_16[$i + 1]
  13.                         WEnd
  14.                         $t_16[$i] = $t_10
  15.                        
  16.                 Else
  17.                         $t_16[$i] = _zh16($t_10)
  18.                 EndIf
  19.                
  20.                 For $i = UBound($t_16) - 1 To 0 Step -1
  21.                        
  22.                         $ch16 &= _zh16($t_16[$i])
  23.                 Next
  24.                
  25.         Else
  26.                 $ch16 = "-1"
  27.         EndIf
  28.         Return $ch16
  29.        
  30. EndFunc   ;==>_ch10to16

  31. Func _zh16($ch16)
  32.         Switch $ch16
  33.                 Case "10"
  34.                         $ch16 = "A"
  35.                 Case "11"
  36.                         $ch16 = "B"
  37.                 Case "12"
  38.                         $ch16 = "C"
  39.                 Case "13"
  40.                         $ch16 = "D"
  41.                 Case "14"
  42.                         $ch16 = "E"
  43.                 Case "15"
  44.                         $ch16 = "F"
  45.         EndSwitch
  46.        
  47.         Return $ch16
  48. EndFunc   ;==>_zh16


  49. Func _ch16to10($t_txt)
  50.         $_jieguo = 0
  51.         $t_len = StringLen($t_txt)
  52.         If $t_len > 0 Then
  53.                 If StringIsXDigit($t_txt) Then
  54.                         Dim $t_n[1]
  55.                         $k = $t_len
  56.                         ReDim $t_n[$t_len]
  57.                         For $i = $t_len To 1 Step -1
  58.                                 $t_n[$k - $i] = StringUpper(StringMid($t_txt, $i, 1))
  59.                                 Switch $t_n[$k - $i]
  60.                                         Case "A"
  61.                                                 $t_n[$k - $i] = "10"
  62.                                         Case "B"
  63.                                                 $t_n[$k - $i] = "11"
  64.                                         Case "C"
  65.                                                 $t_n[$k - $i] = "12"
  66.                                         Case "D"
  67.                                                 $t_n[$k - $i] = "13"
  68.                                         Case "E"
  69.                                                 $t_n[$k - $i] = "14"
  70.                                         Case "F"
  71.                                                 $t_n[$k - $i] = "15"
  72.                                 EndSwitch
  73.                         Next
  74.                        
  75.                         For $i = 0 To UBound($t_n) - 1
  76.                                 $_jieguo += $t_n[$i] * 16 ^ $i
  77.                         Next
  78.                        
  79.                 Else
  80.                         MsgBox(16, "检查字符串", "请检查字符串是否为十六进制" & @CR & "十六进制数只有(0-9)(A-F)")
  81.                         $_jieguo = 0
  82.                 EndIf
  83.         Else
  84.                 MsgBox(16, "检查字符串", "没有检测到要转换的字符串")
  85.                 $_jieguo = 0
  86.         EndIf
  87.         Return $_jieguo
  88. EndFunc   ;==>_ch16to10
复制代码

找了半天没有找到AU3的十六进制转换函数,自己写了一个 方便使用
调用方法  十进制转换十六进制 $变量=_ch10to16("十进制数字") 成功返回十六进制字符  错误返回-1 十进制数字只能是正数
十六进制转换十进制  $变量=_ch16to10("十六进制数字")成功返回十进制字符 错误返回0


最近访问 头像模式 列表模式
Skyfree 发表于 2020-12-14 17:47:15 | 显示全部楼层

活跃 275078| 技术 1420| 互助 1819| 钻石 31024

  1. _Main()
  2. Exit

  3. Func _Main()
  4.         
  5.         Local $iNum = 10
  6.         
  7.         Local $sHex = Hex($iNum, 4)
  8.         ConsoleWrite('$sHex = ' & $sHex & @CRLF)
  9.         
  10.         $iNum = Dec($sHex)
  11.         ConsoleWrite('$iNum = ' & $iNum & @CRLF)
  12.         
  13. EndFunc   ;==>_Main
复制代码


参见 Hex 函数和 Dec 函数,按需索取
 楼主| nyjy_hx 发表于 2020-12-14 18:17:22 | 显示全部楼层

活跃 58| 技术 0| 互助 0| 钻石 0

额。。。刚接触一个新语言。。好多东西没仔细看,自己重建了函数。。。。

点评

有轮子就不要再写轮子了……  详情 回复 发表于 2020-12-15 09:47
Skyfree 发表于 2020-12-15 09:47:12 | 显示全部楼层

活跃 275078| 技术 1420| 互助 1819| 钻石 31024

nyjy_hx 发表于 2020-12-14 18:17
额。。。刚接触一个新语言。。好多东西没仔细看,自己重建了函数。。。。

有轮子就不要再写轮子了……
yushuo 发表于 2020-12-16 11:00:32 | 显示全部楼层

活跃 392| 技术 0| 互助 0| 钻石 0

继续学习学习
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

nyjy_hx

58

活跃

0

技术

0

互助
签到任务
最火的业界新闻
  • 捷领推出M.2 2280固态硬盘散热器 还带有ARG
  • 真的没货!NVIDIA新卡皇RTX 3080 Ti被曝无
  • 惠普发布 ProBook x360 11 G7 教育版笔记本
  • AMD显卡老大转投Intel 收到一块惊喜RX 6800
  • 大批MacBook Pro被曝突然无法充电引关注:
  • 技嘉首发群联二代主控PCIe 4.0 SSD:读取超
  • 三星发布1.08亿像素ISOCELL HM3传感器 改进
  • CES 2021:金士顿介绍新款NVMe SSD和USB 3.
  • 华硕刷新TUF Gaming A15/A17游戏本 锐龙500
  • 运营商明确不办5G套餐也能用上5G网 流量从4
炫酷的硬件Show
  • 振华SUPER FLOWER 铜皇450W 铜牌电源
  • 比小更小,Mini-STX装机
  • 华擎X99E-ITX + 银欣ML06 装机记
  • 最强双路泰坦硬管水冷 制作流程
  • 银欣FT02,双路E5工作站
  • 迟到的定制机箱小钢炮清理灰尘
  • 乔思伯UMX1 Plus,小巧的家用综合主机
  • 分体水冷第二弹-Inwin 805 infinity
  • 第一次DIY硬管水冷~~
  • 樱桃MX6.0 青轴 机械键盘 开箱
有趣的美图分享
  • 玩游戏有我重要吗?
  • 要加速了!
  • 好家伙和车场有一拼
  • 交往后的男人和女人
  • 女生出门前和出门后
  • 只为那份心中的温暖
  • 喝酒不用找代驾的车
  • 炫耀
  • 历史老师为了上课有多拼
  • “整容记”
关注官方微信
快速回复 返回顶部 返回列表