二进制、八进制、十进制和十六进制数之间的转换方法

-回复 -浏览
楼主 2020-09-15 14:53:31
举报 只看此人 收藏本贴 楼主

提示点击↑↑上方"机电技术与设计制造交流分享会"订阅

   

常用二进制、八进制、十进制和十六进制及转换方法


一、什么是进位计数制


  数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原则进行计数的方法,称为进位计数制。比如,在十进位计数制中,是按照“逢十进一”的原则进行计数的。常见的数制有二进制、八进制、十进制和十六进制。文字、数字、声音、图形与图像、视频以及动画等数据在计算机中是以二进制的形式存储的。一般情况下,我们在数字后面用特定的字母(下标)表示该数的进制,表示方法为:B表示二进制D表示十进制(D可省略),O表示八进制H表示十六进制。如二进制数10101表示为(10101)B。

一、什么是进位计数制

数制也称计数制,是指用一组固定的符号和统一的规则来表示数值的方法。按进位的原则进行计数的方法,称为进位计数制。比如,在十进位计数制中,是按照“逢十进一”的原则进行计数的。

常用进位计数制:

1、十进制(Decimal notation),有10个基数:0 ~~ 9 ,逢十进一;

2、二进制(Binary notation),有2 个基数:0 ~~ 1 ,逢二进一;

3、八进制(Octal notation),有8个基数:0 ~~ 7 ,逢八进一;

4、十六进制数(Hexdecimal notation),有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一。

二、进位计数制的基数与位权

"基数"和"位权"是进位计数制的两个要素。

1、基数:

所谓基数,就是进位计数制的每位数上可能有的数码的个数。例如,十进制数每位上的数码,有"0"、"1"、"3",…,"9"十个数码,所以基数为10。

2、位权:

所谓位权,是指一个数值的每一位上的数字的权值的大小。例如十进制数4567从低位到高位的位权分别为100、101、102、103。因为:

4567=4x103+5x 102+6x 101 +7x100

3、数的位权表示:

任何一种数制的数都可以表示成按位权展开的多项式之和。

比如:十进制数的435.05可表示为:

435.05=4x102+3x 101+5x100+0x10-1 +5x 10-2

位权表示法的特点是:每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。


三、二进制数

计算机中为何采用二进制:二进制运算简单、电路简单可靠、逻辑性强。

1、定义:

按“逢二进一”的原则进行计数,称为二进制数,即每位上计满2 时 向高位进一。

2、特点:

每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2;

比如:10011010与00101011是两个二进制数。

3、二进制数的位权表示:

(1101.101)2=1x23+1x 22+0x 21+1x 20+1x2-1 +0x 2-2+1x2-3

4、二进制数的运算规则:

加法运算

① 0+0=0 ③ 1+1=10

② 0+1=1+0=1

乘法运算

① 0×0=0 ③ 1×1=1

② 0×1=1×0=0


四、八进制数

1、定义:

按“逢八进一”的原则进行计数,称为八进制数,即每位上计满8时向高位进一。

2、特点:

每个数的数位上只能是0、1、2、3、4、5、6、7八个数字;八进制数中最大数字是7,最小数字是0;基数为8;

比如:(1347)8与(62435)8是两个八进制数。

3、八进制数的位权表示:

(107.13)8=1x 82+0x 81+7x 80+1x8-1 +3x 8-2


五、十六进制数

1、定义:

按“逢十六进一”的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。

2、特点:

每个数的数位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码;十六进制数中最大数字是F,即15,最小数字是0;基数为16;

比如:(109)16与(2FDE)16是两个十六进制数。

3、十六进制数的位权表示:

(109.13)16=1x 162+0x161+9x 160+1x16-1 +3x 16-2

(2FDE)16=2x 163+15x 162+13x 161+14x 160


六、常用计数制间的对应关系

二进制数、八进制数、十六进制数及十进制数是现代数字系统中常用的四种数制,这几种进位制计数制之间的对应关系如表1所列。

表1 常用计数制数的表示方法

十进制数

二进制数

八进制数

十六进制数

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

17

10001

21

11

18

10010

22

12

19

10011

23

13

20

10100

24

14

32

100000

40

20

50

110010

62

32

60

111100

74

3C

64

1000000

100

40

100

1100100

144

64

255

11111111

377

FF

1000

1111101000

1750

3E8


七、数制间的转换

1、十进制数转换成非十进制数

(1)十进制整数转换成非十进制整数

为什么要进行数制间的转换?

将数由一种数制转换成另一种数制称为数制间的转换。

因为日常生活中经常使用的是十进制数,而在计算机中采用的是二进制数。所以在使用计算机时就必须把输入的十进制数换算成计算机所能够接受的二进制数。计算机在运行结束后,再把二进制数换算成人们所习惯的十进制数输出。这两个换算过程完全由计算机自动完成。

转换方法

十进制整数化为非十进制整数采用“余数法”,即除基数取余数。

把十进制整数逐次用任意十制数的基数去除,一直到商是0 为止,然后将所得到的余数由下而上排列即可。

十进制小数转换成非十进制小数转换方法

十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。

把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于0或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。

2、非十进制数转换成十进制数

非十进制数转换成十制数采用“位权法”,即把各非十进制数按位权展开,然后求和。

3、二、八、十进制数之间转换

(1)二进制 数与八进制数之间的转换转换方法

把二进制数转换为八进制数时,按“三位并一位”的方法进行。

以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。

将八进制数转换成二进数时,采用“一位拆三位”的方法进行。

即 把八进制数每位上的数用相应的三位二进制数表示。

二进制数与十六进制数之间的转换转换方法

a、把二进制数转换为十六进制数时,按“四位并一位”的方法进行。

以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添0补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添0补足四位。然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。

b、将十六进制数转换成二进数时,采用“一位拆四位”的方法进行。

即 把十六进制数每位上的数用相应的四位二进制数表示。

常用进位计数制:


 1、十进制(Decimal notation),有10个基数:0 ~~ 9 ,逢十进一;

 2、二进制(Binary notation),有2 个基数:0 ~~ 1 ,逢二进一;

 3、八进制(Octal notation),有8个基数:0 ~~ 7 ,逢八进一;

 4、十六进制数(Hexdecimal notation),有16个基数:0 ~~ 9,A,B,C,D,E,F (A=10,B=11,C=12,D=13,E=14,F=15) ,逢十六进一。

  十进制、二进制、八进制、十六进制之间的对应关系

十进制

二进制

八进制

十六进制

十进制

二进制

八进制

十六进制

0

0

0

0

9

1001

11

9

1

1

1

1

10

1010

12

A

2

10

2

2

11

1011

13

B

3

11

3

3

12

1100

14

C

4

100

4

4

13

1101

15

D

5

101

5

5

14

1110

16

E

6

110

6

6

15

1111

17

F

7

111

7

7

16

10000

20

10

8

1000

10

8

17

10001

21

11


二、进位计数制的基数与位权


"基数"和"位权"是进位计数制的两个要素。


1、基数:

所谓基数,就是进位计数制的每位数上可能有的数码的个数。例如,十进制数每位上的数码,有"0"、"1"、"3",…,"9"十个数码,所以基数为10。

2、位权:

所谓位权,是指一个数值的每一位上的数字的权值的大小。例如十进制数4567从低位到高位的位权分别为100、101、102、103。因为: 

4567=4x103+5x 102+6x 101 +7x100 

3、数的位权表示:

任何一种数制的数都可以表示成按位权展开的多项式之和。

比如:十进制数的435.05可表示为:

435.05=4x102+3x 101+5x100+0x10-1 +5x 10-2


位权表示法的特点是:每一项=某位上的数字X基数的若干幂次;而幂次的大小由该数字所在的位置决定。 


三、二进制数


计算机中为何采用二进制:二进制运算简单、电路简单可靠、逻辑性强。


1、定义:

按“逢二进一”的原则进行计数,称为二进制数,即每位上计满2 时 向高位进一。


2、特点:

每个数的数位上只能是0,1两个数字;二进制数中最大数字是1,最小数字是0;基数为2;

比如:10011010与00101011是两个二进制数。


3、二进制数的位权表示:


(1101.101)2=1x23+1x 22+0x 21+1x 20+1x2-1 +0x 2-2+1x2-3


4、二进制数的运算规则:


加法运算 

① 0+0=0 ③ 1+1=10

② 0+1=1+0=1 


乘法运算 

① 0×0=0 ③ 1×1=1 

② 0×1=1×0=0


四、八进制数


1、定义:

按“逢八进一”的原则进行计数,称为八进制数,即每位上计满8时向高位进一。


2、特点:

每个数的数位上只能是0、1、2、3、4、5、6、7八个数字;八进制数中最大数字是7,最小数字是0;基数为8;

比如:(1347)8与(62435)8是两个八进制数。


3、八进制数的位权表示:


(107.13)8=1x 82+0x 81+7x 80+1x8-1 +3x 8-2 

五、十六进制数


1、定义:

按“逢十六进一”的原则进行计数,称为十六进制数,即每位上计满16时向高位进一。


2、特点:

每个数的数位上只能是0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F十六个数码;十六进制数中最大数字是F,即15,最小数字是0;基数为16;

比如:(109)16与(2FDE)16是两个十六进制数。


3、十六进制数的位权表示:


(109.13)16=1x 162+0x161+9x 160+1x16-1 +3x 16-2 

(2FDE)16=2x 163+15x 162+13x 161+14x 160 

六、常用计数制间的对应关系

二进制数、八进制数、十六进制数及十进制数是现代数字系统中常用的四种数制,这几种进位制计数制之间的对应关系如表1所列。

表1 常用计数制数的表示方法

十进制数

二进制数

八进制数

十六进制数

0

0

0

0

1

1

1

1

2

10

2

2

3

11

3

3

4

100

4

4

5

101

5

5

6

110

6

6

7

111

7

7

8

1000

10

8

9

1001

11

9

10

1010

12

A

11

1011

13

B

12

1100

14

C

13

1101

15

D

14

1110

16

E

15

1111

17

F

16

10000

20

10

17

10001

21

11

18

10010

22

12

19

10011

23

13

20

10100

24

14

32

100000

40

20

50

110010

62

32

60

111100

74

3C

64

1000000

100

40

100

1100100

144

64

255

11111111

377

FF

1000

1111101000

1750

3E8

七、数制间的转换


1、十进制数转换成非十进制数



(1)十进制整数转换成非十进制整数

①为什么要进行数制间的转换? 

将数由一种数制转换成另一种数制称为数制间的转换。


因为日常生活中经常使用的是十进制数,而在计算机中采用的是二进制数。所以在使用计算机时就必须把输入的十进制数换算成计算机所能够接受的二进制数。计算机在运行结束后,再把二进制数换算成人们所习惯的十进制数输出。这两个换算过程完全由计算机自动完成。


②转换方法

十进制整数化为非十进制整数采用“余数法”,即除基数取余数。

把十进制整数逐次用任意十制数的基数去除,一直到商是0 为止,然后将所得到的余数由下而上排列即可。


②十进制小数转换成非十进制小数转换方法

十进制小数转换成非十进制小数采用“进位法”,即乘基数取整数。

把十进制小数不断的用其它进制的基数去乘,直到小数的当前值等于0或满足所要求的精度为止,最后所得到的积的整数部分由上而下排列即为所求。


2、非十进制数转换成十进制数


非十进制数转换成十制数采用“位权法”,即把各非十进制数按位权展开,然后求和。 


3、二、八、十进制数之间转换


(1)二进制 数与八进制数之间的转换转换方法

①把二进制数转换为八进制数时,按“三位并一位”的方法进行。


以小数点为界,将整数部分从右向左每三位一组,最高位不足三位时,添0补足三位;小数部分从左向右,每三位一组,最低有效位不足三位时,添0补足三位。然后,将各组的三位二进制数按权展开后相加,得到一位八进制数。


②将八进制数转换成二进数时,采用“一位拆三位”的方法进行。

即 把八进制数每位上的数用相应的三位二进制数表示。


③二进制数与十六进制数之间的转换转换方法

a、把二进制数转换为十六进制数时,按“四位并一位”的方法进行。


以小数点为界,将整数部分从右向左每四位一组,最高位不足四位时,添0补足四位;小数部分从左向右,每四位一组最低有效位不足四位时,添0补足四位。然后,将各组的四位二进制数按权展开后相加,得到一位十六进制数。


b、将十六进制数转换成二进数时,采用“一位拆四位”的方法进行。

即 把十六进制数每位上的数用相应的四位二进制数表示。 

数制的相关知识


01

数制的概述


虽然计算机能极快地进行运算,但其内部并不像人类在实际生活中使用的十进制,而是使用只包含0和1两个数值的二进制。当然,人们输入计算机的十进制被转换成二进制进行计算,计算后的结果又由二进制转换成十进制,这都由操作系统自动完成,并不需要人们手工去做,学习汇编语言,就必须了解二进制(还有八进制/十六进制)。 数制也称计数制,是用一组固定的符号和统一的规则来表示数值的方法。人们通常采用的数制有十进制、二进制、八进制和十六进制。                      

02

数制的基本概念


数码

数制中表示基本数值大小的不同数字符号。例如,十进制有10个数码:0、1、2、3、4、5、6、7、8、9。


基数

数制所使用数码的个数。例如,二进制的基数为2;十进制的基数为10。


位权

数制中某一位上的1所表示数值的大小(所处位置的价值)。例如,十进制的123,1的位权是100,2的位权是10,3的位权是1。二进制中的 1011 ,第一个1的位权是8,0的位权是4,第二个1的位权是2,第三个1的位权是1


数制

计数的规则。在人们使用最多的进位计数制中,表示数的符号在不同的位置上时所代表的数的值是不同的。


十进制

人们日常生活中最熟悉的进位计数制。在十进制中,数用0,1,2,3,4,5,6,7,8,9这十个符号来描述。计数规则是逢十进一。


二进制

在计算机系统中采用的进位计数制。在二进制中,数用0和1两个符号来描述。计数规则是逢二进一,借一当二。


十六进制

人们在计算机指令代码和数据的书写中经常使用的数制。在十六进制中,数用0,1,…,9和A,B,…,F(或a,b,…,f)16个符号来描述。计数规则是逢十六进一。


数制符号

二进制B(binary)

八进制O(octal)

十进制D(decimal)

十六进制H(hexadecimal)

03

数制的转换

无论哪种数制,数值的表示都包含两个基本要素:基数和各位的“位权”(“位权”可理解为对应位置上1所代表的值或者权力的大小)。

基数是一个近位计数制允许选用的基本的数字符号的个数,一般而言,r进制的基数为r,可供选用的计数符号有r个,分别为0~(r-1),每个数位就向其高位进1,即“逢r进1”。如十进制基数为10,可供选用的计数符号有10个,分别为0~9,每个数位计满10就向其高位进1,即逢10进1。

“位权”又简称“权”,是指一个进位计数制中,各位数字符号所表示的数值。位权的大小是以基数为底,数字符号所处位置的序号为指数的整数次幂。各数字符号所处位置的序号记法为:以小数点为基准,整数部分自右向左依次为0,1,2,……递增,小数部分自左向右以此为-1,-2,-3,……递减。

十进制整数转换为二进制采用“除r取余法”。

例:(15)D=(1111)B=(17)O=(F)H.

数制的转换方法

下面我们来看看各数制之间是怎么转换的:

其它进制转换为十进制

方法是:将其它进制按权位展开,然后各项相加,就得到相应的十进制数。

例1: N=(10110.101)B=(?)D

按权展开N=1*2^4+0*2^3+1*2^2+1*2^1+0*2^0+1*2^-1+0*2^-2+1*2^-3

=16+4+2+0.5+0.125 =(22.625)D

将十进制转换成其它进制

方法是: 它是分两部分进行的即整数部分和小数部分。

整数部分:(基数除法)

把我们要转换的数除以新的进制的基数,把余数作为新进制的最低位;

把上一次得的商再除以新的进制基数,把余数作为新进制的次低位;

继续上一步,直到最后的商为零,这时的余数就是新进制的最高位.

小数部分: (基数乘法)

把要转换数的小数部分乘以新进制的基数,把得到的整数部分作为新进制小数部分的最高位

把上一步得的小数部分再乘以新进制的基数,把整数部分作为新进制小数部分的次高位;

继续上一步,直到小数部分变成零为止。或者达到预定的要求也可以。

相互转换

二进制转换为八进制、十六进制:它们之间满足23和24的关系,因此把要转换的二进制从低位到高位每3位或4位一组,高位不足时在有效位前面添“0”,然后把每组二进制数转换成八进制或十六进制即可

八进制、十六进制转换为二进制时,把上面的过程逆过来即可。

例3:N=(C1B)H=(?)B

(C1B)H=1100/0001/1011=(110000011011)B

数制及其转换

数制也称为计数制,是用一组固定的符号和统一的规则来表示数值的方法。人们通常采用的数制有十进制、二进制、十六进制和八进制。但计算机只认识二进制。用进位的原则进行计数称为进位计数制,简称进制。在一般情况下,人们习惯于用十进制来表示数。其实,在现实生活中也使用其他进制,如用六十进制计时,用十二进制作为月到年的进制等。在计算机科学中,不同情况下允许采用不同数制表示数据。在计算机内用二进制数码表示各种数据,但是在输入、显示或打印输出时,人们习惯于用十进制计数。在计算机程序编写中,有时还采用八进制和十六进制,这样就存在着同一个数可用不同的数制表示及它们相互之间转换的问题。在介绍各种数制之前,首先介绍数制中的几个名词术语。

数码:一组用来表示某种数制的符号。如:1234ABC、Ⅰ、Ⅱ、Ⅲ、Ⅳ等。

基数:数制所使用的数码个数称为“基数”或“基”,常用“R”表示,称R进制。如二进制的数码是01,基为2

位权:指数码在不同位置上的权值。在进位计数制中,处于不同数位的数码代表的数值不同。如十进制数111,个位数上的1权值为100,十位数上的1权值为101,百位数上的1权值为102

常用的进位计数制

1)十进制(Decimal System

十进制数是人们最熟悉的一种进位计数制,它由0、1、2、…、8、9这10个数码组成,即基数为10。十进制的特点为:逢十进一,借一当十。一个十进制数各位的权是以10为底的幂。

2二进制(Binary System

01两个数码组成,即基数为2。二进制的特点为:逢二进一,借一当二。一个二进制数各位的权是以2为底的幂。

3八进制(Octal System

012345678个数码组成,即基数为8。八进制的特点为:逢八进一,借一当八。一个八进制数各位的权是以8为底的幂

4十六进制(Hexadecimal System

012、…、9ABCDEF16个数码组成,即基数为16。十六进制的特点为:逢十六进一,借一当十六一个十六进制数各位的权是以16为底的幂

在书写时,一般用以下两种数制表示方法:

1)把一串数用括号括起来,再加这种数制的下标。如(1016,(1001002,(1208。对于十进制可以省略

2)用进位制的字母符号B(二进制)、O(八进制)、D(十进制)、H(十六进制)来表示。注意:在不至于产生歧义时,可以不注明十进制数的进制

如:十六进制数A2A0C可表示为A2A0CH

1-1  十进制、二进制、八进制、十六进制之间的对应关系

十进制

二进制

八进制

十六进制

十进制

二进制

八进制

十六进制

0

0

0

0

9

1001

11

9

1

1

1

1

10

1010

12

A

2

10

2

2

11

1011

13

B

3

11

3

3

12

1100

14

C

4

100

4

4

13

1101

15

D

5

101

5

5

14

1110

16

E

6

110

6

6

15

1111

17

F

7

111

7

7

16

10000

20

10

8

1000

10

8

17

10001

21

11

2二进制/八进制/十进制与十六进制之间各自的转换规律,看懂下方例题,多练习,

1).R进制转换为十进制

    方法是:将其他数制按权展开,然后各项相加,就得到了相应的十进制数。

    例如:我们熟悉十进制的(1234. 5)10 =1 ×103 +2 ×102+3×101 +4×100 +5×l0-1=1234.5,这里的数字“2”在百位上,就代表有两个100,即2×102,以此类推。那么我们就可以用这样的方法来算R进制数相对应的十进制。

    (10110. 1)2  =1× 24 +0 × 23 +1 ×22 +1×21 +0 ×20 +1×2-1

               = (22. 5)10

    (456.45)8   =4 × 82 +5 × 81+6 ×80 +4 ×8-1+5 ×8-2

               = (302. 578125)10

    (2AF)16     =2× 162 +A ×161 +F ×160

               =2 × 162 +10×16 +15×1

               = (687)10

2).十进制数转换为R进制数

    方法是:R进制的整数部分和小数部分分别对待,整数部分采用“除R取余”的方法,先计算出低位。小数部分采用“乘R取整”的方法,先计算出高位。

    例如:依据下面的计算方法,我们得到(143. 8125)10=(10001111. 1101)2

    

    十进制转化为八进制或十六进制,只需将除数或乘数换成816就可以了。

3)二进制、八进制、十六进制数转化为十进制数

对于任何一个二进制数、八进制数、十六进制数,可以写出它的按权展开式,再按十进制进行计算即可。

例如:

1111.112 = 1×231×221×211×201×2-11×2-2 = 15.75

A10B.816 = 10×1631×1620×16111×1608×16-1= 41227.5

4)十进制数转化为二进制数

十进制数的整数部分和小数部分在转换时需作不同的计算,分别求值后再组合。对于整数部分采用除2取余法,即逐次除以2,直至商为0,得出的余数倒排,即为二进制各位的数码。小数部分采用乘2取整法,即逐次乘以2,从每次乘积的整数部分得到二进制数各位的数码。

例:将十进制数100.125转化为二进制数。

先对整数100进行转换:

由上得出,100D = 1100100B。可通过按权展开式检验:

1×261×250×240×231×220×210×20 = 64324 = 100

对于小数部分0.125的转换:

                       0.125×2 = 0.250               …… a-1

                       0.25×2 = 0.5                    …… a-2

                       0.5×2 = 1                         …… a-3

由上得出,0.125D = 0.001B

将整数和小数部分组合,得出:100.125D =1100100.001B

5)二进制数与八进制数的相互转换

二进制数转换成八进制数的方法是:将二进制数从小数点开始,对二进制整数部分向左每3位分成一组,对二进制小数部分向右每3位分成一组,不足3位的分别向高位或低位补0凑成3位。每一组有3位二进制数,分别转换成八进制数码中的一个数字,全部连接起来即可。

例:把二进制数11111101.101转化为八进制数。

二进制3位分组

011

111

101.

101

转换为八进制数

3

7

5.

5

所以,11111101.101B = 375.5O

反过来,将八进制数转换成二进制数,只要将每一位八进制数转换成相应的3位二进制数,依次连接起来即可。

6)二进制数与十六进制数的相互转换

二进制数与十六进制数的相互转换方法和二进制数与八进制数的转换类似。二进制数转换成十六进制数,只要把每4位分成一组,再分别转换成十六进制数码中的一个数字,不足4位的分别向高位或低位补0凑成4位,全部连接起来即可。反之,十六进制数转换成二进制数,只要将每一位十六进制数转换成4位二进制数,依次连接起来即可。

例:将10110001.101B转换为十六进制数。

二进制4位分组

1011

0001.

1010

转换为十六进制数

B

1.

A

所以,10110001.101B = B1.AH

其他数制之间的转换可以通过二进制数作为中间桥梁,先转化为二进制数,再转化为其他进制数。

二进制的运算规则

在计算机中,采用二进制数可以非常方便地实现各种算术运算和逻辑运算。

1)算术运算规则

加法规则:0+0 = 00+1 = 11+0 = 11+1 = 10(向高位有进位)。

减法规则:0-0 = 010-1 = 1(向高位借位);1-0 = 11-1 = 0

乘法规则:0 × 0 = 00 × 1 = 01 × 0 = 01 × 1 = 1

除法规则:0/1 = 01/1 = 1

2)逻辑运算规则

逻辑与运算(AND):00 = 001 = 010 = 011 = 1

逻辑或运算(OR):00 = 001 = 110 = 111 = 1

逻辑非运算(NOT):1 = 00 = 1

逻辑异或运算(XOR):

逻辑异或运算即实现按位加的功能,只有当两个逻辑值不相同时,结果才为1

计算机中数的表示

1.正数与负数

    计算机只认识二进制数01,所以在计算机中数的符号也是用数码来表示的,一般用“0”表示正数的符号,“1”表示负数的符号,并放在数的最高位。

    例如:(01011)2=(+11)10,(11011)2=(-11)10

    计算机中数的表示有三种--原码、补码与反码。数在计算机中都是以补码的形式存储的。

    一个正数的原码、补码与反码是相同的,是其本身;

    负数的反码是相对应的正数按位取反;

    负数的补码等于反码加1

    例如:(10)10=(1010)2,所以(10)10的原码、反码、补码均为:01010

        -1010 =- 10102,则(-1010的原码、反码、补码分别为:

    原码:11010

    反码:10101(对01010按位取反);

    补码:10110( 10101+1)

2.定点数和浮点数

   (1)定点数表示法

    在机器中,小数点位置固定的数称为定点数,一般采用定点小数表示法,即小数点固定在符号位与最高位之间。有时也采用定点整数表示法,此时将小数点固定在数的最低位的后面。定点数的运算规则比较简单,但不适宜对数值范围变化比较大的数据进行运算。

   (2)浮点数表示法

    浮点数可以扩大数的表示范围。浮点数由两部分组成:一部分用以表示数据的有效位,称为尾数;一部分用于表示该数的小数点位置,称为阶码

1.3.2  信息的编码

1计算机中数据的单位

计算机中的数据都要占用不同的二进制位。为了便于表示数据量的多少,引入数据单位的概念。

1位(bit

位,简记为b也称为比特,是计算机存储数据的(最小单位)。一个二进制位只能表示01,要想表示更大的数,就得把更多的位组合起来。每增加一位,所能表示的数就增大一倍。

2字节(Byte

字节来自英文Byte简记为B。规定1B=8bit。字节是存储信息的基本单位。微型机存储器是由一个个存储单元构成的,每个存储单元的大小就是一个字节,所以存储器容量大小也以字节数来度量。我们还经常使用其他的度量单位,即KBMBGBTB,其换算关系为:

1KB = 210 B1MB = 220 B1GB = 230 B1TB = 240 B

3字(Word

计算机处理数据时,CPU通过数据总线一次存取、加工和传送的数据称为字,计算机的运算部件能同时处理的二进制数据的位数称为字长。一个字通常由一个字节或若干个字节组成。由于字长是计算机一次所能处理的实际位数长度,所以字长)是衡量计算机性能的一个重要指标。字长越长,速度越快,精度越高。不同微处理器的字长是不同的,常见的微处理器字长有8位、16位、32位和64等。

2.数值的表示

在计算机中,所有数据都以二进制的形式表示数的正负号也用“0”和“1”表示。通常规定一个数的最高位作为符号位,“0”表示正,“1”表示负。这种采用二进制表示形式的连同数符一起代码化了的数据,在计算机中统称为(机器数)或(机器码),而与机器数对应的用正、负符号加绝对值来表示的实际数值称为真值。例如:作为有符号数,机器数01111111的真值是+1111111,也就是127

为了在计算机的输入输出操作中能直观迅速地与常用的十进制数相对应,产生了用二进制代码表示十进制数的编码方法,简称BCD码或8421编码。例如,对于(23910的编码如下:

十进制数

2

3

9

8421编码

0010

0011

1001

常用的数制

(1)十进制--->二进制

对于整数部分,用被除数反复除以2,除第一次外,每次除以2均取前一次商的整数部分作被除数并依次记下每次的余数。另外,所得到的商的最后一位余数是所求二进制数的最高位。

对于小数部分,采用连续乘以基数2,并依次取出的整数部分,直至结果的小数部分为0为止。故该法称“乘基取整法”。

(2)二进制--->十进制

二进制数转换为十进制数

二进制数第0位的权值是2的0次方,第1位的权值是2的1次方……

(3)十进制--->八进制

10进制数转换成8进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成8。

(4)八进制--->十进制

八进制就是逢8进1。

八进制数采用 0~7这八数来表达一个数。

八进制数第0位的权值为8的0次方,第1位权值为8的1次方,第2位权值为8的2次方……

(5)十进制--->十六进制

10进制数转换成16进制的方法,和转换为2进制的方法类似,唯一变化:除数由2变成16。

(6)十六进制--->十进制

16进制就是逢16进1,但我们只有0~9这十个数字,所以我们用A,B,C,D,E,F这六个字母来分别表示10,11,12,13,14,15。字母不区分大小写。

十六进制数的第0位的权值为16的0次方,第1位的权值为16的1次方,第2位的权值为16的2次方……

所以,在第N(N从0开始)位上,如果是是数 X (X 大于等于0,并且X小于等于 15,即:F)表示的大小为 X * 16的N次方。

(7)二进制--->八进制

整数部分:从后往前每三位一组,缺位处用0填补,然后按十进制方法进行转化。

(8)八进制--->二进制

整数部分:从后往前每一位按十进制转化方式转化为三位二进制数,缺位处用0补充。

(9)二进制--->十六进制

二进制和十六进制的互相转换比较重要。不过这二者的转换却不用计算,每个C,C++程序员都能做到看见二进制数,直接就能转换为十六进制数,反之亦然。


进位计数制
1.十进制:生活中最常用的数制,逢十进一,用D表示。
2.二进制:计算机技术中广泛采用的一种数制,二进制数据是用0和1两个数码来表示的数,用B表示。
3.八进制:采用0-7共八个数码,逢八进一,用O表示。
4.十六进制:数用0-9和A-F共16个符号来表述。   逢十六进一。0-9对应0-9,A-F对应10-15,用H表示。
十进制转二进制
方法为:十进制数除2取余法,即十进制数除2,余数为权位上的数,得到的商值继续除2,依此步骤继续向下运算直到商为0为止。(具体用法如下图)
十进制转换成二进制是除2取余,转换成八进制是除8取余,转换成十六进制是除16取余
举个例子说明:100转化八进制就是144
先用100除以8 得12余4
再用12除以8  得1余4
再用1除以8   得0余1
最后把把所有余数倒过来放一起就是144 就是八进制数了(十六进制同理)
(100)D=(144)O
(1000)D=(3E8)H
二(八、十六)进制转十进制
方法为:把二(八、十六)进制数按权展开、相加即得十进制数。
(具体用法如下图)
位权:对于 N进制数,整数部分第i位的位权为N^(i-1),
二进制的第8位位权为2^7,
八进制的第8位位权为8^7,
十六进制的第8位位权为16^7
二进制与八进制之间的转换
二进制转八进制
方法为:3位二进制数按权展开相加得到1位八进制数。(注意事项,3位二进制转成八进制是从右到左开始转换,不足时补0)。
(具体用法如下图)
口诀“4 2 1”,3个数字的第一位代表着4,第二位代表着2,第三位代表1(从左往右)
如:010=2  110=6   111=7   001=1
二进制与十六进制之间的转换
二进制转十六进制
方法为:与二进制转八进制方法近似,八进制是取三合一,十六进制是取四合一。(注意事项,4位二进制转成十六进制是从右到左开始转换,不足时补0)。
(具体用法如下图)
口诀:“8 4 2 1”,4个数字的第一位代表着8,第二位代表着4,第三位代表2,第四位代表着1(从左往右)
例如:0001=1 0010=2  0101=5  1010=A  1111=F


《信息与二进制数》


信息与二进制数

(相关知识点)

l 信息:用来描述事物变化及相互关系的数据说表达的内容是信息(内容是信息;数据本身是载体,这里的数据是广义上的。如:报纸是信息的载体,而报纸上的新闻内容则是信息)。信息论的创始人香农认为“信息是能够用来消除不确定性的东西”。(理解)

l 人类社会赖以生存和发展的三大资源:信息、物质、能源。(记忆)

l 常用的信息技术:通信技术、计算技术、感测技术、控制技术信息载体:在信息传播中携带信息的媒介,是信息赖以附载的物质基础。(了解)

l 信息的主要特征:传载性、共享性、可处理性、时效性等。(理解)

l 信息处理的工具:算盘、电报、电话、计算机等。计算机是常见的信息处理工具。(了解)

l 信息处理的一般过程是指信息收集、信息存储、信息加工、信息发布。(理解)

l 信息处理的一般要求:信息的获取要全面、信息的加工要准确、信息的表达要规范、信息的传输要安全。(了解)

l 计算机作为常见的信息处理工具的特征:高速、自动、准确。(了解)

l B与b:一个字节(Byte,简写为B)由8个二进制位(bit,简写为b)构成。

(1)1B=8bit 

(2)计算机存储器容量的基本单位是字节(Byte)。(记忆)

l 数码:一组用来表示某种数制的符号。

(1)二进制的数码是:0,1

(2)十进制的数码是:0,1,2,3,4,5,6,7,8,9

(3)十六进制的数码是:0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

l 基数:数制所使用的数码个数。(以十进制为参照,类比)

(1)二进制的基数是:2

(2)十进制的基数是:10

(3)十六进制的基数是:16

l 位权:数码在不同位置上的倍率值。(以十进制为参照,类比)

(1)二进制数的位权从左向右依次是:  ……23,22,21,20

(2)十进制数的位权从左向右依次是:  ……103,102,101,100

(3)十六进制数的位权从左向右依次是:……163,162,161,160

l 进位法则:二进制的进位原则是“逢二进一”。(以十进制为参照,类比)

l 数制转换:

(1)二进制转十进制(理解掌握)

方法一:“按权相加”

对十进制数而言:123.456=6*10-3+5*10-2+4*10-1+3*100+2*101+1*102

                         =0.006+0.05+0.4+3+20+100

类似的,在将二进制数转换成十进制数时,将每一位上的数字字符乘以它所代表的权再相加,就可以得到相应的十进制数。

对于二进制数:100110.01=1*2-2+0*2-1+0*20+ 1*21+ 1*22 + 0*23 + 0*24 + 1*25

=0.25+2+4+32

=38.25

方法二:表格法

假设去超市购物,你手上只有面值0.5、2、5、10、20元的钞票各一张,你最多可以购买多少钱的商品?

钞票面值

20

10

5

2

1

0.5

钞票总额


1

1

1

1

0

1

20+10+5+2+0.5=37.5

类似的,将二进制数转换成十进制数时,各个数位上的数码相当于面值分别为1、2、4、8、16…2n不等的钞票:


25

24

23

22

21

20

2-1

结果

100101.1B


1

0

0

1

0

1

1

32+4+1+0.5=37.5

 ∴100101.1B=37.5

(2)十进制转二进制(理解掌握)

方法一:“除2倒取余”

将十进制数转换成二进制数,对于整数部分可以使用“除二取余、逆序排列”:将给定的十进制数除以2,余数作为二进制数的末位值,所得的商再除以2,余数依次作为二进制数的值……如此反复,直到商为0,最后将所得余数依次从后往前排,最后的余数作为最高位即得到所求二进制数;对于小数部分可以使用“乘二取整、顺序排列”:将给定的十进制数乘以2,将乘积的整数部分取出,再用余下的小数部分乘以2,再取出乘积的整数部分……如此反复,直到积的小数部分为0,或者达到所要求的精度为止。

例:将十进制数45.375转换成二进制数。

整数部分:

小数部分:

0.375 * 2=0.75   取整数部分 0

0.75*2=1.5       取整数部分 1

0.5*2=1          取整数部分 1      (积的小数部分为0,结束)

0.375=0.011B

∴ 45.375=101101.011B

方法二:表格法

将十进制数分解成最接近、但不大于自己的2n数之和,其中,每个2n数最多出现一次,然后在表格中将出现的数下行填入“1”,否则填入“0”。

45.375=32+8+4+1+0.25+0.125


25

24

23

22

21

20

2-1

2-2

2-3

结果

45


1

0

1

1

0

1

0

1

1

45=101101.011B

∴ 45.375=101101.011B

由于2-n比较难于计算,且可能出现循环,因此,在带有小数的二进制数与十进制之间的转换时,一般不使用表格法

(3)二进制转十六进制的相互转换(了解)

请观察n位二进制可以表示的数的个数,总结规律:

结论:n位二进制可以表示2n个不同的数。因为4位二进制一共可以表示16个数,分别对应的数值的大小是十进制的0-15,而十六进制的数码也刚好是0-15这16个,所以只需要把二进制数从低位到高位每4位一组划分,然后把这4位二进制数转为相应的数值大小,再用16进制数码对应表示即可转为十六进制数。

 (3.1)二进制数转为十六进制数

例:11011100010B=110 1110 0010  B

                = 6    E   2    H

(3.2)十六进制数转为二进制数

将16进制数的每位数码对应的数值大小转为相应的4位二进制即可.

例:A7F4H=  A   7    F   4    H

         =1010 0111 1111 0100  B

附1:二进制典型例题1


附2:二进制数典型例题2




微信:Mechanicalelectrical

欢迎关注      

关注【机电技术与设计制造交流分享会】,获取最新最全的知识和信息!

         版权声明:本机电技术与设计制造交流分享会旨在学习知识,分享知识,本意不作为任何商业用途与利益价值;由于部分文章可能存在来源于网络或其他作者出处,对文中观点保持中立,对所包含内容的准确性、可靠性或者完整性不提供任何明示或暗示的保证,不对文章观点负责,仅作分享之用,另外有些文章版权及插图属于原作者,由于推送时未能及时与原作者取得联系。若涉及到版权或侵权问题,敬请原作者及时联系我们,我们会及时审核处理,及时删除!


我要推荐
转发到

友情链接