二进制撞上小数(用二进制表达小数)

本文介绍了如何在二进制中理解和表达小数,通过十进制的乘除法则,揭示了二进制中小数点移位与自然数的关系,以及小数的加减运算过程,展示了0.1在二进制中的无限循环表示特性。
摘要由CSDN通过智能技术生成

敢问,当你听到用二进制来表示小数时,你是否跟我一样陷入了沉思?

但我经过沉思后,我懂得了一点皮毛。在这里我把它分享给你。

不知道你是不是跟我一样,想到的第一个小数就是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 这样是不是就看懂了。

希望以上内容,对你了解 二进制表达小数 有所帮助。

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值