首页 > 编程知识 正文

定点整数有符号位吗,定点数数据格式表示方法

时间:2023-05-05 20:36:59 阅读:151090 作者:3471

文章目录1 .定点数的表示形式2 .定点数的原码、反码和补码3 .定点小数注意事项参考文献

中数值的显示有两种形式:“点数”(Fixed-point Number )和浮点数。

1 .点数的显示形式

定数点是指小数点在数中位于一定位置的数。 定点数分为定点整数和定点小数,小数点位置是一定的,所以存储时小数点不会被存储,而是在规定的位置计算数值。 原则上,小数点的位置可以位于任何位置,但通常将常数的数量表示为纯小数或纯整数。

假设用n位机器语言长度表示固定点数。 从右到左,从下位到上位分别为x1、x2、x3…xn-1、xn。 其中xn取值0和1,分别表示正负。 这样,对于任意定点数x=xnxn-1…x2x1,在定点机器中可以表示如下。

如果x表示纯小数,则小数点介于xn和xn-1之间。如果x表示纯整数,则小数点位于x1的右侧。

2 .固定点数的原码、反码和补码固定点数是我们日常生活中使用的数,比如十进制固定点的正整数5(10 ) 5310,二进制表示为110101 )2) 110101_2) 1101012,虽然看不到小数点,但是小数点是数值最后的整数不省略写。 二进制11010 1 2 110101_2 1101012是5 3 10 53_{10} 5310的原代码。 对于负整数的表示,最高符号位为1表示负数。 5 3 10 -53_{10} 5310用8位表示时,-53的原码为1011010 1 2 10110101_2 101101012。 实际上,计算机在固定点数的存储上采用补数的形式,从原码到补数的转换规则如下

正数:原符号=反符号=补数负数:必须注意,反符号=原符号的位保持1,其他位取反补数=反符号1。 定点小数的补数从倒数加1,该“1”加到小数部分的末尾。

以8位为例,53和-53的原码、反码和辅助码具体表示如下。

[53]原=[53]逆=[53]补=00110101[-53]原=10110101[-53]逆=11001011负整数的补码不同于原码以钟表为例,假设现在1点,钟表为4点,修改钟表有两种方式。 一个是将时针后退4-1=3格。 二是向前转动时针12-3=9格。 由此可见,三减九是等价的。 因为9是(-3 )对12的补数,所以公式如下。

-3=9(mod12 )上式在数学上是联合式,mod 12表示12是模量。 以计算机中32位有符号整数值为例,除了一个符号位外,数值位共有31位,模式为2^31。

固定点数时,从补数转换为十进制数值的规则如下。

十进制值=(-1 )符号比特)比特权和其他比特)比特权基于上述转换规则,正整数补数0011010 1 2 00110101_2

001101012​,转换为十进制数值过程如下:

=(-1)*0*27 + 1*2^5 + 1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0= 32 + 16 + 4 + 1= 53

对于负整数 − 5 3 10 -53_{10} −5310​ 的补码 1100101 1 2 11001011_2 110010112​ 转为 − 5 3 10 -53_{10} −5310​ 的过程如下:

(-1)*1*2^7+1*2^6+0*2^5+0*2^4+1*2^3+0*2^2+1*2^1+1*2^0=-128+64+8+2+1=-53

当 53 除以 2 得到的结果是26.5,此时 26.5 为十进制定点小数,转换为二进制为 11010. 1 2 11010.1_2 11010.12​。类似于定点二进制整数转换为十进制整数,根据每个比特位的位权,同样可以将定点二进制小数转换为十进制小数,转换过程如下:

= 1*2^4 + 1*2^3 + 0*2^2 + 1*2^1 + 0*2^0 + 1*2^-1= 16 + 8 + 2 + 0.5= 26.5 3.定点小数注意事项

对于定点小数的存储,实际上,计算机不存储小数点,但小数点的位置必须知道,不然计算机无法知道真实数值。计算机作何知道小数点的位置呢?那么就需要有一个定点小数的规范。假设机器字长 8 bits,我们规定从左至右,第一位为符号位,接着后 5 位表示定点小数的整数部分,后两位表示定点小数的小数部分。那么 26. 5 10 26.5_{10} 26.510​ 的实际存储形式为 01101010。由于对定点小数并无统一的规范,且数值表示的范围和精度有限,所以普通计算机对于小数的表示采用浮点数形式,C/C++ 中也没有定点小数类型,一般使用单精度浮点数 float 和双精度浮点数 double 来表示小数。

参考文献

[1] Introduction to Fixed Point Number Representation
[2] 计算机组成原理第四版.白中英

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。