经常在代码中看到 十六进制 ,不知道有什么用,为什么不直接用十进制,要用十六进制比如 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个赞
跟文本相对的数据我们一般称之为二进制数据(不严谨..),这里的区别在于文本(字符串)我们可以直接显示出来,但是像图片、音频这种我们是无法用字符的形式显示出来的,例如我们用记事本来打开一个JPEG文件是可以的,但会得到“乱码“。
哪怕是非计算机专业的人都知道电脑用的是二进制,0/1,而2^4等于16,这意味着我们用一位十六进制数据可以表示4位的二进制,而计算机中可寻址的最小单位是字节(byte),1byte=16bit。因此,使用十六进制的两位刚好可以表示一个字节的内容。例如: 0xf3 就是两位十六进制表示了1byte的内容。前面的0x只是一个前缀,用来区分8进制和10进制字面量(例如在C语言中: 0x3是十六进制,03是8进制,3是十进制)。但如果你用的是十进制,就没有那么刚刚好的对应了,0xf3用十进制表示是243。

塔塔绵羊
TA贡献1条经验 获得超0个赞
进行底层操作,比如处理图像,处理字节流,因为我们平时使用的是字串,但计算机之间的交流都是通过二进制的,有时候需要通过上位机(我们的服务器,java虚拟机)向相关硬件发送指令,而硬件执行的二进制需要通过16进制转化,所以需要转成16进制
没有找到匹配的内容?试试慕课网站内搜索吧
添加回答
举报
0/150
提交
取消