对于很多非CS方面的同学,以及没有好好学过C语言的同学来说,数制和编码方面一直是令人头痛的一部分知识点,我们首先将以习题的方式带大家初步了解本方面内容, 帮助同学们快速掌握知识。
例(1)
因为1位十六进制数基数为16,需要16个数码(以0123456789ABCDEF表示),我们非常容易发现,4位二进制数恰好可以唯一地有16种组合,进而我们可以将(0123456789ABCDEF)替换为(0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111)。
同理,我们可以发散一下思维,1位八进制数的基数为8,需要8种数码,我们即可通过3位二进制数表示。
例(2)
在做此题之前,我们需要先了解8421BCD码是什么。
由于二进制的优越性和十进制的易读性,我们希望用二进制来表示十进制,通过二进制的不同组合编码来对十进制的10个数码进行一一替换。常见的有BCD(8421)码,2421码,余3码,二五混合码,10中取1码。本题考察的即是BCD(8421)码。其对应关系为:(0,1,2,3,4,5,6,7,8,9)(0000,0001,0010,0011,0100,0101,0110,0111,1000,1111)