前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么二进制中没有2,八进制中没有8,而十进制和十六进制中却都有10和16?

为什么二进制中没有2,八进制中没有8,而十进制和十六进制中却都有10和16?

作者头像
琉璃康康
发布2024-01-15 16:05:19
1360
发布2024-01-15 16:05:19
举报
文章被收录于专栏:七禾页话七禾页话

点击蓝字,关注我们

某乎上看到一个有意思的一个问题——为什么二进制中没有2,八进制中没有8,而十进制和十六进制中却都有10和16?问题中是有错误的,但是不妨碍也简单聊聊。

进制是一种表示数字的方式,每一个进制使用一个基数(或基底)来确定每个位置的值。基数是一个固定的数字,表示每个位置可以容纳的不同数字的数量。例如,十进制使用基数 10,表示每个位置可以容纳 10 个数字。二进制使用基数 2,表示每个位置只能容纳 2 个数字。八进制使用基数 8,表示每个位置可以容纳 8 个数字。十六进制使用基数 16,表示每个位置可以容纳16 个数字。

所有的进制中每个位置容纳的数字都是从0开始的,而且每个位置要保证基础数字都是一位。那么每个进制中最大的基础数字是多少呢?

基数 - 1=最大的基础数字

比如二进制需要的最大基础数字就是2-1=1,十进制就是10-1=9,八进制就是8-1=7,十六进制就是16-1=15,但是15已经是两位了,进位会比较麻烦,所以十六进制中从10-15这些双数就用A、B、C、D、E、F表示了(不区分大小消息,为什么是英文字母呢?因为计算机是人家发现的,没办法)。

每个进制中的基础数字如下:

当计算的时候,每到进制的最大基础数字就需要向前进1,继续从0开始,比如下图整理了各个进制中0到20(十进制说法)的表示,其中红色框是各个进制中对十进制中十的表达,紫色框中是各个进制第一次需要进位的数字:

二进制确实没有2(十进制的说法),八进制中确实没有8(十进制的说法)。

但是二进制中10就表示了十进制中的2,八进制中的10表示了十进制中的8。

而十进制中的10表示了十,这个自然语言,我们人类或者说地球被设计的时候就自然有了自然语言中数字读法。

而十六进制中的16表示了十进制中的22。

所以十进制是自然语言,不管是中文、英语、阿拉伯语、斯瓦西里语等等语种自然有十进制的数字说法和写法。

而二进制、八进制和十六进制都是伴随这个计算机的出现而出现的。

二进制是因为计算机使用电子开关(晶体管)来处理数据,这些开关只有两个状态:开和关,为了很好地记录各个晶体管的开关状态,定义了开用数字1表示,关用数字0表示,这个0和1就定义为二进制。进而通过晶体管的开关状态形成了一串二进制的1和0 的记录,然后将自然语言中的所有字符都进行二进制对应,也就是ASCII码,最终完成了自然语言的数字化。

但是二进制随着表示的内容多少会越来越长,所以早期在计算机技术中出现了八进制来简化二进制的读写和理解,八进制中,每个数字代表三位二进制数(即 (2^3)),这使得从二进制到八进制的转换非常直观。

后来又出现了十六进制,提供了一种比八进制更紧凑的方式来表示二进制,每个十六进制数字对应四位二进制数((2^4)),这使得十六进制在表示大量二进制数据时更为高效。

比如在wireshark中看到的数据包中显示为十六进制:

再比如IPv6使用十六进制来显示。

而伴随着技术的发展,尤其是在个人计算机和现代编程语言中,十六进制比八进制更常用,因为十六进制在表示大量数据(如内存地址)时更为高效和直观。

综上,十进制是一种自然语言,日常使用。

而二进制、八进制和十六进制是伴随着计算机的出现而出现的,日常生活中很难用也不需要用,谁去买菜说给我买十六进制A斤(十进制的十斤)菜,或者给我称二进制100(十进制的4)个苹果,绝对分分钟被拉去做实验,是不是谁家的机器人逃跑了。

以上,欢迎留言来一起了解学习ICT的相关知识!

『分享』你的每个『赞』和『在看』,我都喜欢!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-01-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 七禾页话 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档