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

这篇具有很好参考价值的文章主要介绍了计算机数字编码入门篇(下)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

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

文中部分内容参考ChatGPT,在此感谢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 \]

知道怎么转换后,我们再来看下面的。

1.2、无符号定点数

无符号定点数,数值在机器中字长的全部二进制位中没有符号位,全都是数值位。

在这情况下,我们用8bit来存放5.375,并且约定小数点在中间,在这种情况下,我们可以将前4位用于整数部分,后4位用于小数部分,就得到它的二进制为:01010110

1.3、有符号定点数

有符号定点数,需要专门取一位数据位作为符号位,通常,符号位上的1表示负数,0表示正数,其余位为数值位。

2、浮点法

浮点数是一种数值表示方法,用于在计算机中表示实数(包括小数和整数)以及进行数学运算。浮点数的名称源于其表示方式,即小数点可以"浮动"或"移动",以适应不同的数值范围和精度要求。

我们先来看一组数据,0.666、6.66、66.6、666,他们都有一个共同的特点,就是可以用「科学计数法」来表示成:

\[6.66*10^n,n依次为-1,0,1,2 \]

浮点法和这个有点儿类似,那它究竟是怎么来表示数字的呢?

2.1、IEEE 754 浮点数计数标准

计算机中浮点数表示位如下形式(形式上与科学计数法有些类似)其中M表示尾数,E表示阶码

\[V=(-1)^S*1.M...*2^E \]
  • 符号(S):0表示正数,1表示负数
  • 阶码部分(E):表示小数点移动的位数。E>0表示向右移动,E<0表示向左移动。
  • 尾数部分(M):是浮点数的二进制表示。需要注意的是这里尾数部分,如果不是1.M...这种格式,需要做一个简单处理。

这看着有点迷糊,既然有公式,那我们就按上面的来套一下,就是把我们要转换的值,转成二进制后,再转成公式里的样子,方便起见,还是用5.375来说明。

  • 1.M...:这就是一种格式,如:1.1001、1.00110等,小数点前面的必定是1,因为我们现在是二进制嘛,要是0的话你就把小数点往后移移,总能找到是1的时候
  • 把5.375转成二进制后为:101.011
  • 符号位:这是个正数,结合上面的公式,那可以肯定S=0
  • 阶码(E):对于1.M...的形式,101.011=1.01001*2^2,所以E=127+2,用二进制表示为:10000001

这里为何要加上127呢?等会再看“阶码偏置”

  • 尾数:1.01011的尾数部分就是01011

2.2、阶码偏置

指数偏移值(exponent bias),是指浮点数表示法中的指数域的编码值为指数的实际值加上某个固定的值,IEEE 754标准规定该固定值为:

\[2^{e-1}-1 \]

其中的 为存储指数的比特的长度。

采用指数的实际值加上固定的偏移值的办法表示浮点数的指数,好处是可以用长度为 个比特的无符号整数来表示所有的指数取值,这使得两个浮点数的指数大小的比较更为容易,实际上可以按照字典序比较两个浮点表示的大小。

2.3、用float来表示完整二进制

单精度float一共32位,最高位用来表示符号位,中间的8位用来表示阶码,其它23位用来表示尾数部分:

符号位(S) 阶码部分(E) 尾数部分(M)
1位 8位 23位

按这个定义,5.375表示出来应该是:

符号位(S) 阶码部分(E) 尾数部分(M)
0 10000001 01011000000000000000000

尾数据部分不够23位的,后面补0就是了。

同样的,双精度double一共64位:

符号位(S) 阶码部分(E) 尾数部分(M)
1位 11位 52位

2.4、验证

现在我们已经把5.375转成了二进制形式,就是:01000000101011000000000000000000,我突然想到是不是可以用chatgpt来验证一下结果,于是我就去试了一下,

真是忏愧,还是gpt4比较好,说的比我好多了。

3、最后

定点数和浮点数都可以表示小数,而定点数的精度固定,表现范围比较有限;但是,定点数在硬件上比较容易去实现,在实际的数据算法中,定点数运算效率比浮点数的运算效率有大大的提高,同时也降低了数据存储资源。因此,定点数会被广泛的应用到数字信号处理的各种应用场景中。文章来源地址https://www.toymoban.com/news/detail-710998.html

到了这里,关于计算机数字编码入门篇(下)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ASCII编码:计算机文本通信的基石

    ASCII(美国信息交换标准代码)编码是一种将字符与数字相互映射的编码系统,它为现代计算机文本通信奠定了基础。本文将从多个方面介绍ASCII编码的原理、发展历程、应用及其在现实场景中的优势,帮助您深入了解这一重要的编码技术。 Ascii编码解码 | 一个覆盖广泛主题工

    2024年02月02日
    浏览(40)
  • 【Java】计算机如何存储字符&&常用编码介绍

    计算机存储字符型数据的本质:将字符转为对应码值,然后将码值转换为二进制,最后存到计算机中。 采用不同的编码方式,则字符对应的码值就不同。目前常见的编码方式有: ASCII ((American Standard Code for Information Interchange): 美国信息交换标准代码。 【优点】只用1个字节表

    2023年04月08日
    浏览(58)
  • 计算机组成原理实验logisim(三)之偶校验编码与检错

    实验三的前两个实验: 国标码转区位码 汉字GB2312编码 在很多地方都找得到,我就不多说。 附上我使用过的连接:https://blog.csdn.net/gemingshun/article/details/106784595 其中我们老师提供的关于汉字字符集编码查询;中文字符集编码:GB2312、BIG5、GBK、GB18030、Unicode  的网址:https://w

    2024年04月13日
    浏览(48)
  • 为什么计算机对浮点型数字计算存在误差

    我们输入的十进制小数在计算机中都是以二进制进行存储。比如: 由此可见0.3在计算机中存储的值永远小于0.3,所以当使用0.3计算时,就会产生误差。 在计算机中浮点型不能直接使用等号比较也是同一个道理。举个李子: 执行结果: 可以看出当涉及到0.3的运算超出一定的精

    2023年04月11日
    浏览(47)
  • 计算机视觉:窥探数字世界的眼睛

    目录 简介: 一. 计算机视觉的起源与发展 二. 计算机视觉的应用领域 三. 计算机视觉的挑战与未来发展 结论: 计算机视觉(Computer Vision)是人工智能(AI)领域中的一个重要分支,专注于研究如何使计算机系统能够“看见”、理解和解释图像和视频的技术。它旨在模拟人类

    2024年02月12日
    浏览(36)
  • 【锟斤拷�⊠是怎样炼成的】——两分钟帮你彻底弄懂计算机的编码原理

    📢📢📢📣📣📣 🌻🌻🌻Hello,大家好,我是天寒雨落,一名有趣的博主,小白一枚,多多关照😜😜😜 🏅🏅🏅CSDN全栈领域新星创作者,阿里云星级博主 💕 入门须知:这片乐园从不缺乏天才,努力才是你的最终入场券!🚀🚀🚀 💓愿我们都能在看不到的地方闪闪发光

    2024年01月20日
    浏览(40)
  • 【计算机视觉】数字图像处理(六)—— 图像压缩

    (一)、图像编码技术的研究背景 1. 信息信息传输方式发生了很大的改变 通信方式的改变 文字+语音 图像+文字+语音 通信对象的改变 人与人 人与机器,机器与机器 2. 图像传输与存储需要的信息量空间 (1)彩色视频信息 对于电视画面的分辨率640 480的彩色图像,每秒30帧,

    2024年02月05日
    浏览(80)
  • 【计算机视觉】数字图像处理(四)—— 图像增强

    图像增强是采用一系列技术去改善图像的视觉效果,或将图像转换成一种更适合于人或机器进行分析和处理的形式。例如采用一系列技术有选择地突出某些感兴趣的信息,同时抑制一些不需要的信息,提高图像的使用价值。 图像增强方法 图像增强方法从增强的作用域出发,可

    2023年04月16日
    浏览(103)
  • 三、计算机理论-计算机网络-物理层,数据通信的理论基础,物理传输媒体、编码与传输技术及传输系统

    物理层概述 物理层为数据链路层提供了一条在物理的传输媒体上传送和接受比特流的能力。物理层提供信道的物理连接,主要任务可以描述为确定与传输媒体的接口有关的一些特性:机械特性、电气特性、功能特性、过程特性 数据通信的理论基础 数据通信的意义 主要是指用

    2024年01月22日
    浏览(68)
  • 计算机组成原理--基于Logisim的海明校验码编码电路实验的应用(超详细/设计/实验/作业/练习)

    掌握海明码设计原理,能独立设计实现汉字 GB2312 编码的海明校验编码体系,并最终在实验环境中利用硬件电路实现对应的编码电路。 1.软件:Logisim软件、JAVA环境 2.硬件:计算机Windows 10 在 logisim 中打开实验资料包中的 data.circ 文件,在对应电路中完成海明校验编码电路。输

    2024年02月08日
    浏览(187)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包