计算机数字编码入门篇(下)

前言

本文旨在为初学者提供有关计算机数字编码的基础知识,以帮助他们初步理解计算机中数字编码的概念。鉴于我个人知识的限制,如有不准确之处,欢迎指正并提供建议。

文中部分内容参考GPT,在此感谢ppword的大力支持。

三、计算机如何表示小数

1、定点法

定点数,其关键地方就在“定”和“点”这两个字上面,即在表示小数数据时,把小数点的位置已经约定好固定在某个位置,这是一个约定,二进制数据中并没有小数点的信息。

在定点数中,小数点可以将数据分为整数和小数部分,对于整数部分,我们已经知道怎么转成二进制来表示,但小数部分要怎么转换呢?

1.1、小数部分如何转二进制

我们先来看一个小数:5.375,它的整数部分转成二进制是:101,下面看小数据部分,小数部分用 * 2 计算的方法:

0.375 * 2 = 0.75 (此时整数部分为 0 ,记下0)
0.75 * 2 = 1.50 (此时整数部分为1,小数部0.5, 继续之前的操作)
0.5 * 2 = 1.0 (此时整数部分为1,此时小数部分为 0,结束)
然后把每一步的整数部分从上到下合起来,得到:011

如果遇到一直结束不了(就是不管*2多少次,小数部分一直存在)的时候,那就看你定点数中小数部分定了多少位,多出来的就不要了,当然这会损失一点精度。

我们现在知道0.375转成二进制是:011,那这个又要怎么转回去呢?就是对二进制的每一位做除2的n(位)次的操作,然后相加:

0 ∗ 2 − 1 + 1 ∗ 2 − 2 + 1 ∗ 2 − 3 = 0.375 0*2^{-1}+1*2^{-2}+1*2^{-3} = 0.375 021

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值