定点整数,定点小数,浮点数

定/浮点数的表示是为了解决小数点问题,而定点数的编码则是为了解决正负号的问题。今天来记录一下定点和浮点数的表示。

定点小数用来表示浮点数的尾数,定点整数用来表示浮点数的阶,即指数,

需要注意的是,定点小数用原码来表示,定点整数用移码来表示,(带符号整数是用补码来表示的,原因在另一文章中有记录。)

我们从浮点数开始说起:

此图为截取慕课网文档素材,32位的浮点数编码表示,第0位数为数符,即符号位,第1~8位是8位移码,用来表示阶码,而剩下的9~31位为24位二进制原码小数表示的尾数,由于规格化尾数的小数点后的第一位总是1,所以可以用23个数位表示24位尾数。

可以通过计算来算出其在正数的范围,最大正数即为0.111...1*2^(11111111)=(1-2^(-24))*2^127,而最小正数则为0.1000...0*2^(00000000)=1/2 *2^(-128),同时,由于原码是对称的,故其表示范围也关于原点对称。

其中,浮点数的规格化表示为+/-1.xxxxxxxxxxxxxx*r^e,IEEE 754标准规定,小数点前总是1,而阶码的全0和全1用来表示特殊值,则规格化阶码的范围为00000001~11111110,而偏移量为127(single)和1023(double),故其范围为(-126~127)

这就是目前我所了解到的浮点数的编码表示。

猜你喜欢

转载自blog.csdn.net/Victor145/article/details/82320588