【按键精灵安卓版】16进制转字符串

这是一个比较偏门的知识点,我们可能会用的地方如下图:

【按键精灵安卓版】16进制转字符串

这是一个脚本错误信息,在里面有一个id41,这个41是一个十六进制。通过把它转换可以知道对应了变量名称是什么。

一种简单的方法在百度上找在线16进制转字符串的网站,把41输入进去,然后点击转换按钮就可以知道结果。这种方法也是我经常用的方法,当然用这种方法,这篇文章就没啥意思了,我肯定想要自己去写一个代码完成这个功能啊。

翻看命令库后,好像没有直接转换的命令,也许有我可能没看到,这里姑且认为没有。

不过有个命令chr,它是可以把10进制转成字符串。

【按键精灵安卓版】16进制转字符串

那么十六进制转字符串,就可以拆分为两步,

第一步:十六进制先转成十进制;
第二步:十进制再转成字符串。

对于第二步有直接的命令,先不用管了,主要解决第一步,怎么把十六进制转成十进制。

可能很多朋友不知道什么是十六进制,在我们日常生活中使用的十进制。就是满10进位,个位、十位、百位……

那么十六进制呢,大家可能听过这个词语——半斤八两,在古代,八两就是半斤的重量,一斤等于16两。那么斤和“两”的换算比例就是16,这个就是十六进制。

十进制每一个数字表示方式是:0123456789
十六进制是:0123456789ABCDEF

这里面A=10,B=11,C=12,D=13,E=14,F=15

之所以不用10,11,12,13……这样表示,是因为他们是2位,在区分的时候比较麻烦。

十六进制转十进制的原理:

16进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

例:2AF5换算成10进制:

用竖式计算:(^代表乘方)

第0位:5 * 16^0 = 5

第1位:F * 16^1 = 240

第2位:A * 16^2= 2560

第3位:2 * 16^3 = 8192

直接计算就是:

5 * 16^0 + F * 16^1 + A * 16^2 + 2 * 16^3 = 10997

按照原理转化成代码:

【按键精灵安卓版】16进制转字符串

解决了十六进制转十进制,再把chr命令封装进去,就可以得到一个十六进制转字符串的函数了。

【按键精灵安卓版】16进制转字符串

最终通过运行代码我们可以知道十六进制的41对应的是字符串A

原文始发于微信公众号(3分钟学堂):

除特别注明外,本站文章均为原创,转载请注明出处和链接!
本文链接地址: https://pumpkinit.com/1255.html
Pumpkin  [https://pumpkinit.com]  感谢

发表评论

电子邮件地址不会被公开。 必填项已用*标注