二进制与八进制编码对应表怎么得来的?二进制转十六进制呢?规律是不是一样的,能不能可以推广?

如题
关注者
8
被浏览
3,968
登录后你可以
不限量看优质回答私信答主深度交流精彩内容一键收藏

这个怎么讲呢,你要先明白进制这个概念。说的通俗一点儿进制就是进位的制度;所谓的进位说的通俗来讲就是可以单独表达数字的符号用完了,需要多加一个符号来表达更多的含义。从数字的角度来看通常多出来的位数用于表达上一位的最大加一。我们以十进制来举例,我们的数字是从0到9的,当数量超出9之后我们怎么记录呢?自然是用两个数位来表达,就是10啦。10的具体含义就是十这个数量上有一个,一这个数量上没有(这个好像的小学时候就会讲)。那么同理我们来推想二进制,每一位上只有两个符号来表示,0表示没有,1表示一个,当数字超出1咋办?再加一位就变成10了,而这个10的含义确是二的位数上有一个,一的位数上没有。这个时候就引申出来另外一个概念:因为我们的习惯是十进制的,突然多出来的计数方法怎么去理解呢?这时候不同进制之间的换算就应运而生了。就好像题主的问题,二进制与八和十六进制之间的换算。这个换算里边有一个诀窍,就是二八十六之间互成幂数,那么这个问题就有意思了。互成幂数就意味着互相之间的表达可以简单的以位的概念来直译。就好像在十进制中,5就是5*10的零次幂,500就是5*10的二次幂。以此类推,在2进制中,1000就是1*2的3次幂,那么2的三次幂是多少呢?Ok,是8。那就是说,在只有两个符号的进制中,需要3位来表达的数量,在八个符号的进制中,1位就可以表达清楚。所以二进制向八进制转换时,你只需要将数字每三位分割开来,然后转译成八进制数字,再将这些数字按顺序罗列就OK了。八转二也是一样,将每个位上的数字转换成三位二进制数字后罗列。所谓的对应表只是为了方便不熟练的人免去运算的麻烦,就好像我们被全世界羡慕的小九九口诀一样,我们会运算的话,口诀都是鸡肋,但是在此之前,背会口诀总是最便捷的运算方法。至于十六进制,无非就是2的三次幂还是四次幂的关系,原理没有什么区别。至于说推广,其实没有什么必要,无论是0-f还是0-7的表达,用极简单的加法运算就可以迅速的转换成二进制。

题主能提出这个问题,可以推测您在工作或者生活中应用到了类似的工具。主要是我们对十进制的理解和认识已经太根深蒂固了,所以会觉得2、8、16这种进制的问题比较费解,总会很不自然的将其先与十进制相比较和转换之后再去思考,其实没有必要。将数量的概念和数字的概念分割开来,从最终数字的结果去对应数量,而数字只单纯的当做符号来处理就OK了。

最后在多说一句,那就是无论是八还是十六进制在运算的时候会引起因为十进制习惯下的进位问题,所以通常有很多这类运算需要的情况下,我们会很自觉的将其转换成二进制来运算,最后转换出结果。当然前提是数量级并没有那么大的前提下的,否则,直接计算机来解决会比人快很多。