为什么0.1不能用二进制精确表示?

发布网友 发布时间:2022-04-24 11:55

我来回答

4个回答

热心网友 时间:2023-10-11 22:49

当知道小数时,以2为底只能表示1/2^n的和的任意组合。

比如:二进制,二进制是基于2的,只使用0和1来表示数字,二进制遵循与十进制相同的运算规则,但看起来比十进制简单。

0。5可以用表格表示,因为它可以表示为1/2。

0。75也可以表示,因为它可以表示为1/2+1/2²。

0。875也可以表示出来,因为它可以表示成1/2+1/2^2+1/2^3。

但是0,1不能被准确地表示出来,因为它可以被表示成1/2^n的和。

扩展资料:

二进制和十进制数字之间的转换

二进制到十进制的转换,每个二进制数都是通过加权求和的。请看例子:

二进制数(101.101)2=1*22+0*21+1*20+1*2-1+0*2+1*2-3-2=10(5.625)

十进制到二进制的转换,通常有必要将小数的整数部分与小数部分分开,整数部分的计算方法:除以2取余数的方法请看例子:

十进制数(53)10的二进制值是(110101)小数计算法:用2乘整个方法,即每步小数部分乘2。小数点左边的数字(0或1)用作二进制表示法中的数字,第一次乘法得到的整数部分是最高位。

例子:将(0.5125)10转换成二进制。(0.5125)10=(0.101)2

热心网友 时间:2023-10-11 22:50

一。进制概念

1。 十进制

十进制使用十个数字(0、1、2、3、4、5、6、7、8、9)记数,基数为10,逢十进一。

历史上第一台电子数字计算机ENIAC是一台十进制机器,其数字以十进制表示,并以十进制形式运算。设计十进制机器比设计二进制机器复杂得多。而自然界具有两种稳定状态的组件普遍存在,如开关的开和关,电路的通和断,电压的高和低等,非常适合表示计算机中的数。设计过程简单,可靠性高。因此,现在改为二进制计算机。

2。 二进制

二进制以2为基数,只用0和1两个数字表示数,逢2进一。

二进制与遵循十进制数遵循一样的运算规则,但显得比十进制更简单。例如:

(1)加法:0+0=0 0+1=1 1+0=1 1+1=0

(2)减法:0-0=0 1-1=01-0=1 0-1=1

(3)乘法:0*0=0 0*1=01*0=0 1*1=1

(4)除法:0/1=0 1/1=1,除数不能为0

3。 八进制

所谓八进制,就是其基数为8,基数值可以取0、1、2、3、4、5、6、7共8个值,逢八进一。

八进制与十进制运算规则一样。那么为什么要用八进制呢?难道要设计八进制的计算机么?实际上,八进制与十六进制的引用,主要是为了书写和表示方便,因为二进制表示位数比较长。如:(1024)10 用二进制表示为 (10000000000)2,共有11个数字,用八进制表示为(2000)8。更重要的是,由于二进制与八进制存在在一种对等关系,每三位二进制与一位八进制数完全对等(23=8)。所以二进制和十进制在运算上无区别,而时进制不具备这一优点。

4。 十六进制

十六进制应用也是非常广泛的一种计数制。在使用者看来,十六进制是二进制数的一种更加紧凑的一种表示方法。

基数为:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F,逢十进一。在十六进制系统中,数值为10到15的数分别用A、B、C、D、E、F表示。

二进制数及与之等值的八进制、十进制和十六进制数

二进制 八进制 十进制 十六进制
0000 0 0 0
0001 1 1 1
0010 2 2 2
0011 3 3 3
0100 4 4 4
0101 5 5 5
0110 6 6 6
0111 7 7 7
1000 10 8 8
1001 11 9 9
1010 12 10 A
1011 13 11 B
1100 14 12 C
1101 15 13 D
1110 16 14 E
1111 17 15 F

二。进制转换

1。二进制与十进制数间的转换

(1)二进制转换为十进制

将每个二进制数按权展开后求和即可。请看例题:

把二进制数(101.101)2=1*22+0*21+1*20+1*2-1+0*2-2+1*2-3=(5.625)10

(2)十进制转换为二进制

一般需要将十进制数的整数部分与小数部分分开处理。

整数部分计算方法:除2取余法请看例题:

十进制数(53)10的二进制值为(110101)2

小数部分计算方法:乘2取整法,即每一步将十进制小数部分乘以2,所得积的小数点左边的数字(0或1)作为二进制表示法中的数字,第一次乘法所得的整数部分为最高位。请看例题:

将(0.5125)10转换成二进制。(0.5125)10=(0.101)2

2。 八进制、十六进制与十六进制间的转换

八进制、十六进制与十六进制之间的转换方法与二进制,同十进制之间的转换方法类似。例如:

(73)8=7*81+3=(59)10

(0.56)8=5*8-1+6*8-2=(0.71875)10

(12A)16=1*162+2*161+A*160=(298)10

(0.3C8)16=3*16-1+12*16-2+8*16-3=(0.142578125)10

十进制整数→→→→→八进制方法:“除8取余”

十进制整数→→→→→十六进制方法:“除16取余” 例如:

(171)10=(253)8

(2653)10=(A5D)16

十进制小数→→→→→八进制小数 方法:“乘8取整”

十进制小数→→→→→十六进制小数方法:“乘16取整”例如:

(0。71875)10=(0.56)8

(0.142578125)10=(0.3C8)16

3.非十进制数之间的转换

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

转换方法是:以小数点为界,分别向左右每三位二进制数合成一位八进制数,或每一位八进制数展成三位二进制数,不足三位者补0。例如:

(423。45)8=(100 010 011.100 101)2

(1001001.1101)2=(001 001 001.110 100)2=(111.)8

2。二进制与十六进制转换

转换方法:以小数点为界,分别向左右每四位二进制合成一位十六进制数,或每一位十六进制数展成四位二进制数,不足四位者补0。例如:

(ABCD。EF)16=(1010 1011 1100 1101.1110 1111)2

(101101101001011.01101)2=(0101 1011 0100 1011.0110 1000)2=(5B4B。68)16

啊 ~~~~~~~~~~~~~~~~~~~终于打完了--------------------好累!

热心网友 时间:2023-10-11 22:50

2进制表示小数的时候只能够表示能够用1/(2^n)的和的任意组合

例如:
0.5能够表示,因为它可以表示成为1/2
0.75也能够表示,因为它可以表示成为1/2+1/(2^2)
0.875也能够表示,因为它可以表示成为1/2+1/(2^2)+1/(2^3)

但是0.1不能够精确表示,因为它补能够表示成为1/(2^n)的和的形式

热心网友 时间:2023-10-11 22:51

2进的只能表示整数

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com