计算机的数值与编码教程,计算机数据表示方法及工业标准IEEE754讲解教程

本文主要对计算机系统中数据的表示形式及工业IEEE754标准进行讲解,如有不当,敬请提出修改,敬请阅读!

目录

Hello!你好呀,我是灰小猿!一个超会写Bug的沙雕程序猿!

今天在这里和大家记录一下在计算机系统中各种数据的表示方式以及工业标准IEEE754的使用方法。

首先了解一个概念:

各种数据在计算机中表示的形式称为机器数,其特点是数的符号用二进制数0、1表示。机器数对应的实际数值称为该数的真值。与此同时,机器数又分为无符号数和带符号数两种。无符号数表示正数,在机器数中没有符号位。对于带符号数,机器数的最高位是表示正、负的符号位,其余二进制位表示数值。带符号的机器数可采用原码、反码、补码和移码等编码方法。机器数的这些编码方法称为码制。

接下来分别对这几个编码方式的使用讲解。

原码表示法

在原码表示中,数值X的原码记为[X]原,如果机器字长为n(也就是用n个二进制数表示),则原码的定义如下:

bd20c2f80a73ddef40b66dba40836005.png

注意:上述公式中的范围之所以到2的n-1次方,是因为该二进制数的第一位表示正负,这就导致了大于等于2的7次方的数都无法表示。

例如当机器字长n等于8时,下列各数的原码为:

bd1df4478ac70695347e68b440039bf9.png

注意:小数用二进制数表示时,小数点后第一位表示2的-1次方,第二位表示2的-2次方......以此类推。

机器数的最高位是符号位,0代表正号,1代表负号,余下各位是数的绝对值。零有两个编码,即:

5389b8007f9f76c0078ec6ae1e5be350.png

原码表示方法的优点在于数的真值和它的原码表示之间的对应关系简单,相互转换容易,用原码实现乘除运算的规则简单;

缺点是用原码实现加减运算很不方便。

反码表示法

在反码表示中,数值X的反码记为[X]反,如果机器字长为n,则反码的定义如下:

a1645a8e8e28e48f89957b36c07c6901.png

例如当机器字长n等于8时,下列各数的反码为:

13fadadaf640dd5d3d5c8b36a67bb7f5.png

机器数的最高位是符号位,0代表正号,1代表负号。

当符号位为0时,其余几位即为此数的二进制值;

但当符号位为1时,则要把其余几位按位取反,才是它的二进制值。

零有两个编码,即:

61d426c0ad1084848ac53cef5bce6d0e.png

补码表示法

在补码表示中,数值X的补码记为[X]补,如果机器字长为n,则补码的定义如下:

c4071093560a49cc53b3cc09f41cf006.png

例如当机器字长n等于8时,下列各数的补码为:

5054a6f74f8005619467b4a04702c4de.png

机器数的最高位是符号位,0代表正号,1代表负号。

当符号位为0(即正数)时,其余几位即为此数的二进制值;

但当符号位为1(即负数)时,其余几位不是此数的二进制值,需把它们按位取反,且最低位加1,才是它的二进制值。

零有唯一的编码, 即

b9d0c777ca708be2a955a0186f58e851.png

补码表示的两个数在进行加法运算时,只要结果不超出机器所能表示的数值范围,可以把符号位与数值位同等处理,运算后的结果按2取模后,得到的新结果就是本次加法运算的结果。

移码表示法

移码表示法是在数X上增加一个偏移量来定义的,常用于表示浮点数中的阶码。如果机器字长为n,规定偏移量为2的n-1次方,则移码定义为:

d339c0a2b8bb56b264cbf4c2846827af.png

例如当机器字长n等于8时,下列各数的原码为:

e0ac7bab903e41e3da1036fdb4db54cd.png

在偏和量为2的n-1次方的情况下,只需要将补码的符号位取反就可以得到相应的移码表示。

除了以上原码、补码这些数据表示方法以外,在计算机中的数据表示还有定点数和浮点数两种,

定点数

所谓定点数,就是小数点的位置固定不变的数。小数点的位置通常有两种约定方式,分别是:

定点整数(纯整数,小数点在最低有效数值位之后)

定点小数(纯小数,小数点在最高有效数值位之前)

b8a9d0a6ff1d490a23b2b33e756a178a.png

浮点数

所谓浮点数,就是小数点位置不固定的数,它能表示更大范围的数值,

先来看一个例子,当机器字长为n时,定点数的补码和移码可表示个数,而其原码和反码只能表示个数,因为在原码和反码中0的表示占用了两个编码,因此定点数所能表示的数值范围比较小,在运算中容易因为结果超出范围而溢出,但是由于浮点数是小数点位置不固定的数,因此它能表示更大的数。

浮点数通常的表示方法是:

98f0bd07e7332636c6c134049a8b37c8.png

其中M为尾数,R为基数(一般为2),E为阶码,

因此如果想要表示一个浮点数,就必须要给出尾数M,它决定了浮点数的表示精度,同时要给出阶码E,它指出了小数点在数据中的位置,也决定了浮点数的表示范围,这种方法表示的数称为浮点数,这种表示数的方法也被称为浮点表示法。

在浮点表示法中,码阶为带符号的纯整数,尾数为带符号的纯小数,浮点数的表示格式如图所示:

阶符

码阶

数符

尾数

从上面我们就可以看出,一个数的浮点表示不是唯一的,当小数点的位置改变时,阶码也随之相应的改变,因此可以用多个浮点形式表示同一个数,

浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。为了充分利用尾数来表示更多的有效数字,通常采用规格化浮点数。规格化就是将尾数的绝对值限定在区间[0.5, 1]。

当尾数用补码表示时,需要注意如下问题:

①若尾数M≥0,则其规格化的尾数形式为M=0.1XXX...X,其中,X可为0,也可为1,即将尾数限定在区间[0.5, 1]。

②若尾数M<0,则其规格化的尾数形式为M=1.0XXX...X,其中,X可为0,也可为1,即将尾数M的范围限定在区间[-1, -0.5]。

如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则这种浮点数所能表示的数值范围如下:

c29e91aa0f11746ba3f5aaf608fe839f.png

注意:若表示范围超过了计算机的表达范围,就称为溢出。

工业标准IEEE754

工业标准IEEE754是由IEEE制定的有关浮点数的工业标准,该标准目前被广泛采用,该标准的表示形式如下:

98d4348d97f29e81b2e066dc8c71c5d4.png

其中,为该数的数符,当S为0时表示正数,当S为1时表示负数,E为指数(阶码)用移码表示,为尾数,其长度为P位,用原码表示,

计算机中主要使用三种形式的IEEE754浮点数,分别是:单精度浮点数、双精度浮点数、扩充精度浮点数,下表为三种格式的IEEE754浮点数格式表。

2721b9d12133f6f96d90065421acdb1b.png

关于数据在计算机中的表示方法就先暂且先总结到这里了,之后还会继续更新完善。

觉得不错记得点赞关注哟!

大灰狼陪你一起进步!

622ecebf44e4cd15807a309822731623.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目录 缩略词 正文之前 1. 目的 2. 本文内容 3. 声明 1. 字符编码相关的背景知识 1.1. 拉丁字母 1.1.1. 我们的目标 1.2. 什么是字符编码 2. 字符编码标准 2.1. 只支持基本的拉丁字符的字符编码:ASCII 2.1.1. ASCII的由来 2.1.2. ASCII编码规则 2.1.2.1. ASCII字符集中的功能/控制字符 2.1.2.1.1. 什么是Function Code功能码或 Function Character功能字符 2.1.2.1.2. ASCII中的Function/Control Code功能字符的详细含义 2.1.2.1.2.1. 0 – NUL – NULl 字符/空字符 2.1.2.1.2.2. 1 – SOH – Start Of Heading 标题开始 2.1.2.1.2.3. 2 – STX,3 – ETX 2.1.2.1.2.4. 4 – EOT – End Of Transmission 传输结束 2.1.2.1.2.5. 5 – ENQ – ENQuiry 请求 2.1.2.1.2.6. 6 – ACK – ACKnowledgment 回应/响应 2.1.2.1.2.7. 7 – BEL – [audible] BELl 2.1.2.1.2.8. 8 – BS – BackSpace 退格键 2.1.2.1.2.9. 9 – HT – Horizontal Tab 水平制表符 2.1.2.1.2.10. 10 – LF – Line Feed 换行 2.1.2.1.2.11. 11 – VT – Vertical Tab 垂直制表符 2.1.2.1.2.12. 12 – FF – Form Feed 换页 2.1.2.1.2.13. 13 – CR – Carriage return 机器的滑动部分/底座 返回 -> 回车 2.1.2.1.2.14. 14 – SO,15 – SI 2.1.2.1.2.15. 16 – DLE – Data Link Escape 数据链路转义 2.1.2.1.2.16. 17 – DC1 – Device Control 1 / XON – Transmission on 2.1.2.1.2.17. 18 – DC2 – Device Control 2 2.1.2.1.2.18. 19 – DC3 – Device Control 3 / XOFF – Transmission off 传输中断 2.1.2.1.2.19. 20 – DC4 – Device Control 4 2.1.2.1.2.20. 21 – NAK – Negative AcKnowledgment 负面响应-> 无响应, 非正常响应 2.1.2.1.2.21. 22 – SYN – SYNchronous idle 2.1.2.1.2.22. 23 – ETB – End of Transmission Block 块传输中止 2.1.2.1.2.23. 24 – CAN – CANcel 取消 2.1.2.1.2.24. 25 – EM – End of Medium 已到介质末端,介质存储已满 2.1.2.1.2.25. 26 – SUB – SUBstitute character替补/替换 2.1.2.1.2.26. 27 – ESC – ESCape 逃离/取消 2.1.2.1.2.27. 28 – FS – File Separator 文件分隔符 2.1.2.1.2.28. 29 – GS – Group Separator分组符 2.1.2.1.2.29. 30 – RS – Record Separator记录分隔符 2.1.2.1.2.30. 31 – US – Unit Separator 单元分隔符 2.1.2.1.2.31. 32 – SP – White SPace 空格键 2.1.2.1.2.32. 127 – DEL – DELete 删除 2.1.2.1.3. 各种字符的标准的读法/叫法 2.1.3. ISO 646 2.2. 支持多种衍生拉丁字母的字符编码:EASCII和ISO 8859 2.2.1. EASCII 2.2.2. ISO 8859 2.2.2.1. ISO/IEC 8859出现的背景 2.2.2.2. ISO/IEC 8859的编码规则 2.2.2.3. ISO/IEC 8859的特点 2.2.2.4. ISO/IEC 6429 2.2.2.5. ISO 8859和ISO-8859的区别和联系 2.2.2.5.1. 原先的ISO 8859-1和我们常说的ISO 8859-1 2.3.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值