为了账号安全,请及时绑定邮箱和手机立即绑定

十六进制在代码中有什么用

十六进制在代码中有什么用

Asaafg 2015-02-12 20:17:29
经常在代码中看到 十六进制 ,不知道有什么用,为什么不直接用十进制,要用十六进制比如       do {             $value = ord($input[$i++]);             $output .= $this->itoa64[$value & 0x3f];             if ($i < $count)                 $value |= ord($input[$i]) << 8;             $output .= $this->itoa64[($value >> 6) & 0x3f];             if ($i++ >= $count)                 break;             if ($i < $count)                 $value |= ord($input[$i]) << 16;             $output .= $this->itoa64[($value >> 12) & 0x3f];             if ($i++ >= $count)                 break;             $output .= $this->itoa64[($value >> 18) & 0x3f];         } while ($i < $count);阅读一些代码总是看到 十六进制 的运用,这和直接用十进制有什么区别

3 回答

?
Spatra

TA贡献3条经验 获得超1个赞

不好意思,上面笔误。。。1byte=8bit, 所以两位十六进制可以表示一个字节..

查看完整回答
反对 回复 2015-02-15
?
Spatra

TA贡献3条经验 获得超1个赞

跟文本相对的数据我们一般称之为二进制数据(不严谨..),这里的区别在于文本(字符串)我们可以直接显示出来,但是像图片、音频这种我们是无法用字符的形式显示出来的,例如我们用记事本来打开一个JPEG文件是可以的,但会得到“乱码“。


哪怕是非计算机专业的人都知道电脑用的是二进制,0/1,而2^4等于16,这意味着我们用一位十六进制数据可以表示4位的二进制,而计算机中可寻址的最小单位是字节(byte),1byte=16bit。因此,使用十六进制的两位刚好可以表示一个字节的内容。例如: 0xf3 就是两位十六进制表示了1byte的内容。前面的0x只是一个前缀,用来区分8进制和10进制字面量(例如在C语言中: 0x3是十六进制,03是8进制,3是十进制)。但如果你用的是十进制,就没有那么刚刚好的对应了,0xf3用十进制表示是243。

查看完整回答
反对 回复 2015-02-15
?
塔塔绵羊

TA贡献1条经验 获得超0个赞

进行底层操作,比如处理图像,处理字节流,因为我们平时使用的是字串,但计算机之间的交流都是通过二进制的,有时候需要通过上位机(我们的服务器,java虚拟机)向相关硬件发送指令,而硬件执行的二进制需要通过16进制转化,所以需要转成16进制

查看完整回答
反对 回复 2015-02-12

添加回答

代码语言

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号