这两段进制转换的代码是怎么实现的?


第一段我按照程序的算法试着把一个16进制数转10进制但是发现算出来不对啊,比如说A=32(16进制

i>>4=3,

j=32%16=6

k=3*10+j=36 !=50

是我哪个地方算错了呢?

第二段代码目的是把16进制数转为10进制判断值是否在目标范围间,但为什么把数据左移24/16/8位后再进行 | 运算能变成10进制数呢?有老哥愿意讲一下吗

回答

第一个程序,按照程序计算,应该是十进制转换成16进制(输出以十进制数表示十六进制)
第二个程序,按程序理解,不应该是十六进制转换10进制,应该是256进制转十进制。看功能,应该是IP地址转换成一个32字节的数值,用于保存或者传输用的。数组里保存的是十进制数字,左移,可理解为按照位置把他们各自放到对应的内存位置中;又或者,左移一位,即乘以2,所以每次左移八位,即乘以256了。

以上是 这两段进制转换的代码是怎么实现的? 的全部内容, 来源链接: utcz.com/a/38979.html

回到顶部