人:什么是二进制?
机:要了解二进制,首先要了解什么是数制:
什么是数制:就是一些能够表示数的方法。比如二进制,八进制,十进制,十六进制。
为什么要学习数制:
由于计算机是通电的,通了电以后,计算机就可以用电模拟一些信号,比如电平信号和脉冲信号。对于电平信号,要么低电平要么高电平;对应脉冲信号,要么有脉冲要么没有脉冲。这两种信号刚好都只有两种状态。我们可以用二进制的0和1来表示这两种状态,所以计算机中的内容只能用二进制的数表示。
而现实生活中不只是二进制一种数制,还有十进制、八进制、十六进制等等。所以要将这些东西转换成二进制,计算机才能进行处理。数值、文字、语音、图形和编码等各种信息在计算机中也是以二进制的形式存在的。
二进制,就是逢二进一
人:既然不止一种数制,那常见的数制有哪些呢?
机:常见的数制有二进制、八进制、十进制、十六进制
二进制:
- 只有两个符号:0和1,逢二进一
- 三种表示方法:(1010)2;1011(B);1010B。这里B是binary的首字母
八进制:
- 八个符号:0 1 2 3 4 5 6 7,逢八进一
- 表现方式:(257)8 ;257(Q);257Q
- 八进制的单词是octal,为避免将o误认为是0,所以将八进制的首字母变成Q:
十进制的:
- a、十个符号:0 1 2 3 4 5 6 7 8 9,逢十进一
- 三种表示方法:(258)10 ;258(D);258。D是decimal的首字母大写。另外,十进制我们最熟,所以也可以什么都不加。
十六进制:
- 十六个符号:0 1 2 3 4 5 6 7 8 9 A B C D E F ,逢十六进一
- 表示方式:(2A8)16 ;2A8(H);2A8H。H是hexadecimal的首字母
人:既然计算机中都是以二进制存在的,那其他的进制是如何转换成二进制的呢?
机:要明白进制间的转换,首先要明白位权的概念,位权括位和权
a、位权
- 位:比如说十进制的258,8在第1位上,5在第2位上,2在第3位上。这里1位,2位,3位就是位。
- 权:处在某一位上‘1’所表示的数值的大小就称为该位的权。不同的进制,不同位上的权的大小为该进制对应的(位-1)次方。比如258这个十进制的数,第1位上的权为1*100,第2位上的权为1*101,第3位上的权为1*102,依次列推。再比如二进制第一位的权为1*20,,第二位的权为1*21,依次类推。
- 数码所表示的数值等于该数码本身*它所在位上的权,
比如:258=2*102+5*101+8*100
1010(B)=1*23+0*22+1*21+0*20=10(D)
b、转换
- 十进制转二进制:除以2倒取余
以15为例:15 —>1111B;
这里注意:1.最后除到1了,还没完,1也要除掉,反正就是要除干净。除到被除数为0才行 2.余数是倒着写上去的
十进制转二进制还可以用凑的方法:
比如30 =12^4+123+1*22+12^1+02^0
所以这个数的二进制为:11110十进制转八进制:除8倒取余
100 —> 144Q
- 二进制转十六进制:
一个二进制位有两种可能(0或1),那么4位二进制数就有16中可能,刚好十六进制有16个数,所以可以用1位十六进制表示4位二进制数。对应关系如下:
十六进制 | 二进制 |
---|---|
0 | 0 |
1 | 1 |
2 | 10 |
3 | 11 |
4 | 100 |
5 | 101 |
6 | 110 |
7 | 111 |
8 | 1000 |
9 | 1001 |
A | 1010 |
B | 1011 |
C | 1100 |
D | 1101 |
E | 1110 |
F | 1111 |
一个二进制数比如:
11111 0101对应的十六进制就是F5。
101 1011对应的十六进制就是5B
还要注意的一点就是,在小数的数制转换中,有的十进制小数,在转换为二进制的时候是凑不出来的。这些有限小数转换成二进制后可能就变成了无限小数。