整数的二进制内存补码与原值的转换规则、浮点数格式
当程序中使用整型数据时,通常用十进制、八进制、十六进制的原值表示法,而整型
数据在内存中是以二进制内存补码形式存在的,其原值与二进制内存补码间的转换规则如
下:
1.从带符号整型数据(包括 int 型、long 型、short 型)的原值求对应的二进制内存补码
正整数的二进制内存补码=该数原值的 N 位二进制形式
负整数的二进制内存补码=(该数原值的绝对值)的 N 位二进制取反加 1
其中,N 由整数的类型及计算机硬件类型决定,例如在 IBMpc 机上,int 型整数 N=
16,long 型整数 N=32,shor 型整数 N=16),二进制内存补码的最高位表示符号位!
2.从带符号整型数据(包括 int 型、long 型、short 型)的二进制内存补码求对应的原值
查看其二进制内存补码的符号位(即最高位),如果二进制内存补码的最高位为 1,
则说明该数是负整数,将二进制内存补码取反加 1,得到原值的绝对值的二进制形式,通
过进制转换,可以得到原值的绝对值的十(八、十六)进制形式,加上负号,即可得到原
值的十(八、十六)进制形式。
如果二进制内存补码的最高位为 0,则说明该数是非负整数,则:原值的二进制形式
=二进制内存补码,通过进制转换,可以得到原值的十(八、十六)进制形式。
3.从无符号整型数据(包括 unsigned int 型、unsigned long 型、unsigned short 型)的原值
求对应的二进制内存补码
无符号整数的二进制内存补码=该数原值(非负整数)直接转换为 N 位二进制形
式
其中,N 由整数的类型及计算机硬件类型决定,例如在 IBMpc 机上,unsigned int 型整
数 N=16,unsigned short 型整数 N=16,unsigned long 型整数 N=32。N 位二进制内存补
码全部表示数值,无符号位!
4.从无符号整型数据(包括 unsigned int 型、unsigned long 型、unsigned short 型)的二进
制内存补码求对应的原值
原值的二进制形式==二进制内存补码
5、浮点数保存的字节格式如下:
地址 +0 +1 +2 +3
内容 SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
这里
S 代表符号位,1 是负,0 是正
E 偏移 127 的幂,二进制阶码=(EEEEEEEE)-127。
M 24 位的尾数保存在 23 位中,只存储 23 位,最高位固定为 1。此方法用最较少的位数实
现了
654
评论0