excel二进制结果怎么转换,excel表格数字转换成二进制

首页 > 实用技巧 > 作者:YD1662023-05-12 19:09:36

说到浮点误差,有一个比较高深的计算机概念——浮点数,有兴趣的同学可以问度娘。简单说,在计算机的计算中,只能存储和处理二进制数据,就是1和0。excel在计算时,首先要把十进制的数值转换为二进制,交给计算机处理,最后再把二进制的结果转换为十进制,显示到Excel中。

十进制数值转换为二进制数值的计算过程为:

1、整数部分

连续用该整数除以2取余数,然后用商再除以2,直到商等于0为止,最后把各个余数按相反的顺序排列。

如果将十进制数值22转换为二进制数值,其计算步骤如下:

22除以2结果为11,余数为0。

11除以2结果为5,余数为1。

5除以2结果为2,余数为1。

2除以2结果为1,余数为0。

1除以2结果为0,余数为1。

最后将余数按相反的顺序排列,整数22的二进制结果为10110。

2、小数部分

用2乘以十进制小数,将得到的整数部分取出,再用2乘以余下的小数部分,然后再将积的整数部分取出。如此往复,直到积中的小数部分为0或者达到所要求的精度为止,最后把取出的整数部分按顺序排列。

如果将十进制数值0.8125转换为二进制数值,其计算步骤是:

首先用0.8125乘以2等于1.625,取整结果为1,小数部分是0.625。

0.625乘以2等于1.25,取整结果为1,小数部分是0.25。

0.25乘以2等于0.5,取整结果为0,小数部分是0.5。

0.5乘以2等于1.0,取整结果为1,小数部分是0,计算结束。

将乘积的取整结果顺序排列,结果就是0.1101。

3、整数和小数混合数值

含有小数的十进制数转换成二进制时,先将整数、小数部分分别进行转换,然后将转换结果相加。

但是这种转换有时候会陷入无限循环,比如按照上述方法将小数0.6转换为二进制代码,计算结果就是:

0.10011001100110011……

其中的0011部分会无限重复,无法用有限的空间量来表示。当结果超出Excel计算精度,产生了一个因太小而无法表示的数字时,在Excel中的处理结果就是0。

所以在不同进制之间转换时,就很容易出现一些非常细小的误差,这就是浮点误差,

Excel里的浮点由于函数机制等原因,在某些极端情况下隐蔽性很高,所以我再写篇文章介绍下这个坑。

1,计算时产生的大量小数位数

excel二进制结果怎么转换,excel表格数字转换成二进制(1)

这个结果出现大量小数位数的原因在之前的文章里已经介绍得很详细了,这里不再赘述。

2,无法录入的数据

由于浮点的问题,有些特殊数录入就能生成浮点,导致无法录入正确内容,32768.598有兴趣你就试试在excel里录入这个数。

excel二进制结果怎么转换,excel表格数字转换成二进制(2)

然而这两种浮点数,在把小数位数调高后都很容易发现异常,因此稍微对Excel有一定了解的伙伴都会知道用ROUND函数修正精度,但是,Excel里存在一类更危险的的浮点数。

excel二进制结果怎么转换,excel表格数字转换成二进制(3)

截图为目前这类数里目前测试下最简单的算式。0.1 0.2,无论如何调高小数位数还是显示为0.3,使用公式求值或者F9抹黑算式检查也不会出现大量小数位数,均为0.3。等号判断下和直接键入的0.3也是相同的。

excel二进制结果怎么转换,excel表格数字转换成二进制(4)

首页 123下一页

栏目热文

文档排行

本站推荐

Copyright © 2018 - 2021 www.yd166.com., All Rights Reserved.