起因是我用winAPI 转换十六到十,发现结果错了,看了半天原来是我复16进制文本时未尾多了一个空格....
感觉API转换兼容性也是有点差,于是在论坛找了一圈汇编转换,发现还不少,但都不太理想,就自己动手撸了个,自认为还行的
十六到十_EX 像 “ 0x1e*240 " ," 0x**1e240**" ,"1E240 " ,"1 e 2 4 0".等等这种有错误的格式都可以正确转换为10进制123456 ”-1e240",“-0x1E240" 可以转换为 -123456
既然撸了16到10那也顺便把10到16也整了,
十到十六_EX
可设转换后字符个数个,最多16(长整数的16进制最大字符个数),但是必须大于实际转换后的字符数才会生效(这个是参考了delphi IntToHex的设定)
比如 123456 设转换后的字符数为8则返回 0001E240 如果设返回字符数为2那么会返回1E240,因为转换后实际字符数超过2,设置无效
还可以选择返回的16进制文本是否带0x标志的前缀....
置入代码 ({ 86, 87, 83, 49, 210, 137, 208, 137, 199, 49, 219, 139, 117, 8, 139, 54, 138, 28, 62, 132, 219, 116, 60, 128, 251, 102, 119, 47, 128, 251, 48, 114, 42, 128, 251, 97, 114, 5, 128, 235, 87, 235, 23, 128, 251, 70, 119, 27, 128, 251, 65, 114, 5, 128, 235, 55, 235, 8, 128, 251, 57, 119, 12, 128, 235, 48, 15, 164, 194, 4, 193, 224, 4, 1, 216, 71, 131, 255, 19, 119, 2, 235, 189, 128, 62, 45, 117, 8, 247, 210, 247, 208, 64, 131, 210, 0, 91, 95, 94, 201, 194, 4, 0 }) 返回 (0 )|
十到十六_EX | 文本型 | | |
数值__ | 长整数型 | | | | 字符数 | 整数型 | | | | _0x前缀 | 逻辑型 | | | |
缓冲区 = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } 置入代码 ({ 81, 83, 87, 86, 139, 117, 252, 141, 118, 8, 131, 125, 24, 0, 116, 8, 102, 199, 6, 48, 120, 131, 198, 2, 131, 125, 16, 16, 126, 7, 199, 69, 16, 16, 0, 0, 0, 131, 125, 16, 0, 127, 7, 199, 69, 16, 2, 0, 0, 0, 139, 69, 8, 139, 85, 12, 137, 195, 137, 215, 49, 201, 133, 219, 116, 10, 15, 172, 251, 4, 193, 239, 4, 65, 235, 242, 57, 77, 16, 118, 3, 139, 77, 16, 137, 195, 131, 227, 15, 131, 251, 9, 119, 5, 131, 195, 48, 235, 3, 131, 195, 55, 136, 92, 14, 255, 15, 172, 208, 4, 193, 234, 4, 226, 225, 94, 95, 91, 89 }) 返回 (到文本 (缓冲区 ))
|