首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

编程范式中遇到的有关问题!困扰小弟我很久了。

2013-12-16 
编程范式中遇到的问题!求救!困扰我很久了。。。#includestdio.hvoid main(){float f 7.0short s*(short*

编程范式中遇到的问题!求救!困扰我很久了。。。
#include<stdio.h>
void main()
{
float f= 7.0;
short s=*(short*)&f;
printf("%hd",s);
}

 程序如上面所示,为什么打印出的s的值是0啊?不是应该取flaot位模式下的前16位当做s么?前16位肯定不会是0啊?不得解啊,而且视频中他也说了是非0的啊!
[解决办法]

引用:
#include<stdio.h>
void main()
{
float f= 7.0;
int len = sizeof(f);
unsigned char pchar = (unsigned char*)(&f);
for(int i = 0; i< len ; i++){
   pringf("%u\t", *(pchar +i));
}
}

再对照你学的计算机组成知识,对比下就明白了。


#include<stdio.h>
void main()
{
float f= 7.0;
int len = sizeof(f);
unsigned char* pchar = (unsigned char*)(&f);
for(int i = 0; i< len ; i++){
   pringf("%u\t", *(pchar +i));
}
}

[解决办法]
跟大小端有关

热点排行