二进制起源于中国。上古奇书《易经》中就使用到了二进制。《易经》长期用来“卜筮”,对事态未来发展进行预测,俗称“算卦”。通过阳爻(—)和阴爻(–)说明天地、日月、人生、事物之间的变化法则,这就是二进制在远古时期典型应用。
中国古代将二进制用于天、地、人以及哲学的研究,现代人将二进制运用到以计算机为主导的数字系统中,帮助人们处理纷繁复杂的信息。
一、十进制与二进制(Binary)
1、什么是编码?
将表示信息的符号或符号组合称为“信息代码”,简称“代码”;那么编制代码的过程就是“信息编码”。
在传统计算机中,信息的存储与计算都是通过二进制实现的。计算机存储的最小单元是“位”,也称“比特位”,每一个二进制位可以表示0和1两种信息;每8个比特位称为一个“字节”。
最新的量子计算机以量子比特为计算基础,其计算与存储原理和传统计算机截然不同。
2、二进制的特点:
只有0和1两个基础数字,采取逢二进一的进位原则。
3、十进制转二进制:
使用短除法,每次除以2取余,直到商为0,将余数逆序输出。
4、二进制转十进制:
按权展开,逐项相加。
n个二进制位可以表示2n个不同的数,表示的最大的二进制数是2n - 1。
5、Python中的转换函数:
bin()函数将十进制整数转换成二进制字符串;
注意:二进制数是一个字符串,以“0b”或“0B”为前缀,前缀不区分大小写,前缀可省略。
int()函数将二进制字符串转换成十进制数。
二、十进制与八进制(Octal)
1、八进制的特点:
包含0~7共8个基础数字,采用逢八进一的进位原则。
2、十进制转八进制:
使用短除法,每次除以8取余,直到商为0,将余数逆序输出。
3、八进制转十进制:
按权展开,逐项相加。
4、Python中的转换函数:
oct()函数将十进制整数转换成八进制字符串;
注意:八进制数是一个字符串,以“0o”或“0O”为前缀,前缀不区分大小写,前缀可省略。
int()函数将八进制字符串转换成十进制数。
三、十进制与十六进制(Hexadecimal)
1、十六进制的特点:
包含09,10个基础数字,和AF,6个基础字母,共16个基础数码,采用逢十六进一的进位原则。
说明:基础数字只有10个,最大只能表示到9,所以使用AF这6个字母分别补充表示1015,AF也可以使用小写af代替,这里不区分大小写。
2、十进制转十六进制:
使用短除法,每次除以16取余,直到商为0,将余数逆序输出。
3、十六进制转十进制:
按权展开,逐项相加。
4、Python中的转换函数:
hex()函数将十进制整数转换成十六进制字符串;
注意:十六进制数是一个字符串,以“0x”或“0X”为前缀,前缀不区分大小写,前缀可省略。
int()函数将十六进制字符串转换成十进制数。
四、二进制与十六进制
1、二进制转十六进制:
从最低位开始,每4位1组,逐组转换;若位数不够,左边补0凑齐。
2、十六进制转二进制:
逐位转换,每1个十六进制位转换成4个二进制位;如果转换的二进制数不足4位,左边补0凑齐;若最终结果最左边有0,将其省略。
二进制与十六进制对照表:
3、Python中的转换函数:
hex()函数可以将二进制数字(而不是字符串)转成十六进制字符串;
bin()函数可以将十六进制数字(而不是字符串)转成二进制字符串。
在转换过程中,要注意以下两点:
1)填写的参数是number类型,而不是str类型;
2)数字类型的前缀不能省略。
模拟考题
1、将十进制数120转换成二进制数时,该二进制数的位数是( )
A、5 B、6 C、7 D、8
2、二进制数10101010对应的十进制数是169。( )
3、十进制数11对应的八进制数是( )
A、10 B、11 C、12 D、13
4、八进制数68对应的十进制数为56。( )
5、将十进制数30转换成十六进制数,最低位上的数是( )
A、c B、d C、e D、f
6、将十进制数转换成十六进制数后,长度一定变短。( )
7、下列关于表达式的计算结果,不正确的是( )
A、hex(int(‘11’, 2))的结果是’0X3’
B、hex(0b11110111)的结果是’0xf7’
C、hex(int(‘11’, 16))的结果是’0x17’
D、bin(0xf7)的结果是’0b11110111’
8、二进制数11110011转换为十六进制数为F3。( )
参考答案:
1、C(结果是1111000,共7位)
2、错(按权展开,结果是170)
3、D
4、错(八进制没有8这个基数)
5、C
6、错(10以内的都不会变短)
7、C(C的正确结果是’0x11’)
8、对