十进制数可以精确转换为二进制数吗?

如题所述

首先需要明确的是,这两句话的意思是不同的。
“任何二进制都可以用十进制来准确表示”是在二进制数集合和十进制数集合之间建立了一个映射,每一个二进制数都存在对应的十进制形式,但是可能有的十进制数不对应任何二进制形式,或者可以说从十进制数集到二进制数集的映射是满射(值域是满的)。而“十进制数可以精确转换为二进制数”则是说从二进制数集到十进制数集的映射是满射,这就要求每一个十进制数都必须有对应的二进制形式。
②是对的,因为二进制数的实质是按权展开,小数点前从右到左第n个数位上的数字对应了2^(n-1)的权值,而小数点后从左到右第k个数位数字对应2^(-k)的权值,如二进制小数10.01对应十进制为1*2^1+0*2^0+0*2^(-1)+1*2^(-2)=2.25;而我们都知道,对于任意的k∈Z,2^k一定是有限位的十进制数,所以从二进制到十进制的转换没有任何准确度上的损失。
①是错的,因为十进制的小数部分,即对于任意k∈Z且k<0,10^k不一定能表示为有限位的二进制数,如以下循环的出现——十进制数0.4,转换为二进制小数时由于0.4*2=0.8,小数第一位取0,0.8*2=1.6,第二位取1,弃去1之后0.6*2=1.2,第三位取1,弃去1之后0.2*2=0.4,第四位取0……发现又回到了0.4,所以二进制小数将会是0.011001100110...的无限循环,这样必然出现精确度的损失,所以说不是所有的十进制数都可以精确转换为二进制数。
温馨提示:答案为网友推荐,仅供参考
相似回答