敢问,当你听到用二进制来表示小数时,你是否跟我一样陷入了沉思?
但我经过沉思后,我懂得了一点皮毛。在这里我把它分享给你。
不知道你是不是跟我一样,想到的第一个小数就是0.1
0.1在二进制中怎样表达呢?这个问题,其实在我着手,写这篇文章时,我也不知道怎么表达。我竟然不知道,我凭什么要写这篇文章呢?
原因就是,我在十进制中发现一个规律,然后这个规律在 二进制中 一样成立。接着往下看。
十进制中小数表达方式及运算:
当我们拿到 0.1 这个小数的时候,我们在0.1 的基础上 乘 10 即:
0.1 * 10 = 1.0
就是这么个简单的运算。不知道 你有什么发现?没错 它的小数点 向 右边 挪了一位
再:
0.1 * 100 = 10. 变化:小数点向右>> 挪了两位。
0.1*1000 = 100. 变化:小数点向右>> 挪了三位。
反之:
0.1 ÷ 10 = 0.01 变化:小数点<<向左 挪了一位。
0.1 ÷100= 0.001 变化:小数点<<向左 挪了两位。
原则:
*或÷ 10 小数点 挪 一 位。
*或÷ 100 小数点 挪 二 位。
*或÷ 1000 小数点 挪 三 位。
……
规律:
10 = 10¹ 即小数点 挪动 一 位。
100 = 10² 即小数点 挪动 二 位。
1000= 10³ 即小数点 挪动 三 位。
10ⁿ 即小数点 挪动 n 位。
规律如上。
---------------------------------------------------------------------------------------------------------
然后一起来看看,二进制中是否也存在着类似的 原则 以及 规律呢?
这里我们 先拿二进制 1000 也就是自然数 8 举例:
拿到1000这个二进制数列后,我们把它的小数点写出来 也就是:
1000.
现在 我们拿到了 1000. 我们接下来要干嘛呢?我们直接把 小数点向 左 挪 一 位 得到 :
100.
100. 换算一下 发现 它代表的是自然数 4
前面 十进制里 小数点向 左 移动 发生了除法
8 ÷ ? = 4
没错 ? = 2
那我们再把得到的100. 的小数点再向 左 挪一位 得到 :
10.
通过换算 10. 代表的是自然数 2
4 ÷ ? = 2
没错 ?= 2
是不是发现了 小数点每向左挪一位,就发生了一次 除2
反之:二进制中小数点向 右 挪位 ,其中发生了一次乘2。(当然 小数点的挪 位 也可以通过 加法 减法实现 ,但我这里偷懒就不举例了)
然后再 依照 十进制 中的规律 ,实践到二进制这里来,这里我懒得举例了;直接搬下来吧。
原则:
*或÷ 2 小数点 挪 一 位。
*或÷ 4 小数点 挪 二 位。
*或÷ 8 小数点 挪 三 位。
……
规律:
2 = 2¹ 即小数点 挪动 一 位。
4 = 2² 即小数点 挪动 二 位。
8 = 2³ 即小数点 挪动 三 位。
2ⁿ 即小数点 挪动 n 位。
规律如上。
-----------------------------------------------------------------------------------------------------
接下来,我们就可以通过这个规律,去实现用二进制表达小数了
用二进制1.举例:
1.
我们将1. 的小数点向 左 移动 一位 得到:
0.1
然而这个 0.1 代表是自然数是多少呢?
这里按照上面给出的原则:向左移动了一位,实际发生了一次 ÷ 2 即:
1 ÷ 2 = 0.5
那么 二进制数列0.1 等于自然数 0.5
----------------------------------------------------------------------------------
按照原则:
二进制 自然数(十进制)
0.1 = 0.5
0.01 = 0.25
0.001 = 0.125
0.0001 = 0.0625
0.00001 = 0.03125
0.000001 = 0.015625
0.0000001 = 0.0078125
发现要用二进制表达 十进制 0.1 似乎没那么简单
……
0.11 = 0.75
0.00011 = 0.09375
0.000111 = 0.109
0.000101 =
可以发现,0.1 的二进制表示是无限循环的 只能无限去 接近0.1
--------------------------------------------------------------------------------------
二进制中小数的加减运算:
0.1 +0.1 = 1 = 自然数 1
0.1 + 0.1 + 0.1 = 1.1 = 自然数 1.5
0.1 + 0.1 +0.1 +0.1 = 10 = 自然数 2
0.1 + 0.1 +0.1 +0.1 +0.1 = 10.1 = 自然数 2.5
将上面0.1 + 0.1 换算成十进制,即等于 0.5 + 0.5 这样是不是就看懂了。
希望以上内容,对你了解 二进制表达小数 有所帮助。