学会与计算机对话:数制转换

人:什么是二进制?

机:要了解二进制,首先要了解什么是数制:

什么是数制:就是一些能够表示数的方法。比如二进制,八进制,十进制,十六进制。

为什么要学习数制:
由于计算机是通电的,通了电以后,计算机就可以用电模拟一些信号,比如电平信号和脉冲信号。对于电平信号,要么低电平要么高电平;对应脉冲信号,要么有脉冲要么没有脉冲。这两种信号刚好都只有两种状态。我们可以用二进制的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

还要注意的一点就是,在小数的数制转换中,有的十进制小数,在转换为二进制的时候是凑不出来的。这些有限小数转换成二进制后可能就变成了无限小数。

你可能感兴趣的:(学会与计算机对话:数制转换)