1.汇编语言 浮点数表示方法
2.如何将浮点数转换成二进制?
3.8位二进制的浮点浮点反码范围是多少?
汇编语言 浮点数表示方法
IEEE浮点数格式
短实数也称单精度数 符号位1位,阶码8位,数的数尾数位
化为2进制
||<------>|
| 这八位是位进阶码: =H=,减去=5表示2^5=,制源
|
第一位是0,表示正数
剩下是码位尾数
.
4.
就是+4.=.
如何将浮点数转换成二进制?
根据IEEE 标准,单精度浮点数的浮点浮点javaio源码解读二进制表示形式为:
~
~ 0
符 指数 尾数
其中,符位表示数的数的数正负,指数位表示数的位进阶码,尾数位表示数的制源有效数字。具体的码位规则如下:
符位:0表示正数,1表示负数。浮点浮点
指数位:将真实的数的数阶码加上一个偏移量(),得到一个无符号整数,位进然后将这个整数表示为8位二进制数。制源例如,码位一个阶码为2的浮点数,在指数位应该表示为2+=,战旗传世源码即。
尾数位:将实际的尾数转化为二进制数,然后在小数点后面添加0,直到尾数为位(单精度)或位(双精度)。例如,一个尾数为2.5的单精度浮点数,其二进制表示为.1,将小数点右移2位,chromium源码改得到1.,然后将其表示为位二进制数,即。
根据上述规则,将-2.5转化为二进制表示形式:
符号位:1 (因为是负数)
整数部分:2的绝对值为,转化为二进制为
小数部分:0.5的二进制为0.1,因此-0.5的二进制为1.1
因此,-2.5的python 看源码二进制表示为:
按照IEEE 标准解析该二进制数:
符号位:1,表示负数
指数位:,转化为十进制为-=2,即阶码为2
尾数位:,转化为十进制为,因此尾数为*2^(-)
因此,-2.5的单精度浮点表示形式为:
1
其中,第一个1表示符号位为负,表示阶码为2,scope源码解析表示尾数为*2^(-)。
8位二进制的反码范围是多少?
8位二进制的范围就是-~,也就是-2^7~2^7-1,所以反码也是这样。计算机对有符号数(包括浮点数)的表示有三种方法:原码、反码和补码
8位原码能够表示数的范围是 -~
8位反码能够表示数的范围是 -~
8位补码能够表示数的范围是 -~
既然范围是-~,那肯定是用补码表示的。
扩展资料:
数的表示:
在原码中,0的表示有两种(+0) 、(-0) ,这样就产生了编码映射的不唯一性,在计算机上就要区分辨别。然而+0、-0却没有什么现实意义。
数的运算:
为了解决上述数的表示问题,我们可以强制把转换后的强制认定为-。但这又出现了一个新的问题就是数的运算。数学上,1+(-1)=0,而在二进制中+=,换算成十进制为-2。显然出错了。所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。
这个时候就要引入补码,补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。反码定义为:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
参考资料: