浮点数强制转换为整型数据

今天学习了浮点数的表示方法

浮点数强制转换为整型数据_第1张图片

在32位的机器中,第一位表示符号位,第二位到底9位表示为指数位

剩下的位表示为小数位。

给出代码

// 1021.1.cpp : 定义控制台应用程序的入口点。
//


#include "stdafx.h"
#include
typedef unsigned char * byte_pointer;
void show_bytes(byte_pointer start,int len)
{
int i;
for(i=0;iprintf(" %.2x",start[i]);
printf("\n");
}
int main()
{
float f=15213.0;
show_bytes((byte_pointer)&f,sizeof(f));
int i=(int)f;
show_bytes((byte_pointer)&i,sizeof(i));
printf("i=%d",i);
}

15213=0x3B 6D=11101101101101=1.1101101101101*2^13

得到相应的浮点数的规格化数的二进制表示为0100 0110 0110 1101 1011 0100 0000 0000=0x46 6d b4 00

浮点数强制转换为整型数据_第2张图片




你可能感兴趣的:(深入理解计算机系统)