数据的机器级表示

前言

在计算机中,带符号数默认采用补码表示,因为利用补码进行减法比较方便。

编码概论

计算机系统内部,所有的信息都是二进制编码的,常用大R表示进制,比如R=2代表二进制。

定点与浮点的表示

在日常生活中,有整数与非整数实数之分,区别在于整数的小数点固定在最右边,而非整数实数的小数点位置不固定。在计算机二进制中,把小数点固定的数称为定点数,把小数点位置可浮动的称为浮点数。

定点表示

定点小数: 小数点总是固定在数的最左边;
定点整数: 小数点总是固定在数的最右边。

浮点表示

根据IEE754标准,任何二进制数都可以表示为如下在这里插入图片描述
其中s表示的是数字V的符号;M是一个二进制定点小数,成为数字V的尾数;E是二进制定点整数,成为数V的阶码或者指数;2是基数。

定点数的编码表示

在日常生活中用±符号表示数字的正负,在计算机中,我们只有0和1,因此我们需将符号数字化,一般规定0为正号,1为负号,任何一个浮点数都可以表示为一个定点小数和一个定点整数,因此只需要考虑定点数的编码表示即可。主要有四种定点数编码表示法:

原码表示法

原码表示法中,正数与负数尽在符号位不同,数值部分相同。例如:
【+0】 = 0 0000…
【-0】 = 1 0000…

优点: 表示简单,转换简单,利于实现乘除运算
缺点: 0的表示不唯一,加减法则复杂
因此现代计算机中一般不用原码表示整数,只用定点原码小数来表示浮点数的尾数部分。

补码表示法

正数的补码是其本身
负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1. (即在反码的基础上+1)
详见:cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html

优点: 实现加减法的统一

反码表示法

正数的反码是其本身
负数的反码是在其原码的基础上, 符号位不变, 其余各位取反,

缺点: 0的表示不唯一,表示范围比补码上一个最小负数,运算时候必须考虑循环进位

移码表示法

详见:cnblogs.com/zhangziqiu/archive/2011/03/30/computercode.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章