0
点赞
收藏
分享

微信扫一扫

3.20study

#include <stdio.h>

/*
int main()
{
float f = 5.5;
//5.5-->101.1 小数点后的二进制转换
//(-1)^0* 1.011*2^2
//S=0,M=1.011 E=2-->存储时为2+127=129-->10000001
//0 10000001 011 00000000000000000000000000
//0100 0000 1011 0000 0000 0000 0000 0000
//0x40B00000
return 0;
}
*/

//整形存储以2进制存储,若以浮点数输出则按照浮点数取出(-1)^s * M * 2^E
//浮点数存储以(-1)^s * M * 2^E,若以整形取出则直接以补码进行换算(正数原反补相同,负数需换算)
int main()
{
int n = 9;
//0 00000000 00000000000000000001001 --补码

float* pFloat = (float*)&n;
printf("n的值为:%d\n", n);//9
printf("*pFloat的值为:%f\n", *pFloat);//0.000000
//(-1)^0 0.00000000000000000001001 * 2^-126 -->正无限接近0
*pFloat = 9.0;
//1001.0
//(-1)^0 * 1.001 * 2^3
//0 10000010 00100000000000000000000

printf("num的值为:%d\n", n);//n为正数,认为内存中存储的为补码,直接解读
//1091567616
printf("*pFloat的值为:%f\n", *pFloat);//9.000000

return 0;
}

举报

相关推荐

ubuntu cmake 3.20 安装

总结笔记3.20

zookeeper Study

DVFS study

0 条评论