十六进制表示_计算机为什么用二进制和十六进制

9ac2fa46d52e4f1e4ba26f592f3adbe2.png

现代计算机的存储和处理的信息以二值信号来表示,这些用0和1来表示的二进制数字,形成了数字革命的基础。对于有10个手指的人类来说,使用十进制表示法是很自然的事情,但是对构造存储和处理信息的机器来说,二进制工作得更好。

二值信号可以很容易地被表示、存储和传输。例如,可以表示为穿孔卡片上有洞或无洞、导线上的高电压或低电压,或者顺时针或逆时针的磁场。

对于二值信号进行存储和执行计算的电子电路非常简单可靠,制造商能够在一个单独的硅片上集成数百万甚至数十亿个这样的电路。

3ca089a5cc065ebb26503a0b7fd80718.png

大多数计算机使用8位的块(字节,byte),作为最小的可寻址的内存单位,而不是访问内存中单独的位。

一个字节由8位组成,用二进制表示,它的值域是 0000 0000 ~ 1111 1111;用十进制表示,它的值域是 0 ~ 255。

可以看出,用二进制表示法太冗长,而十进制表示法与位模式的互相转换很麻烦,替代的方法是以16为基数,即十六进制(hexadecimal)。

十六进制用数字 0 ~ 9 及字符 A ~ F 来表示 0 ~ 15 这16个值。十六进制和二进制、十进制的对应关系如下图所示。

ee960cf384abd242f4e0bb26b9902608.png

可以看到,十六进制和二进制之间的转换比较简单直接。因此,一个字节常用十六进制表示,它的值域是 00 ~ FF。

在C语言中,以0x或0X开头的数字常量被认为是十六进制的值。比如给定一个十六进制表示的数字:0x173A4C,转为二进制则为:

51756f3a43cb275f4d62c58f5930c42f.png

反过来,如果给定一个二进制数字,可以通过把它分为每4位一组来转换为十六进制。需要注意的是,如果总位数不是4的倍数,最左边的一组可以少于4位,前面用0补齐。

d94295d9a64f9dfefd0d8577fb579999.png
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值