怎么将十进制数转化为IEEE的32位浮点数?能用C语言实现就更好了!多谢各位武林大侠!
展开全部
将一个整形转化为32位浮点数? 要是用系统强转的话,纯C代码如下:
#include<stdio.h>
int main()
{
float test=0.0f;
int after=0;
int i=0;
char *b=0;
scanf("%d",&after);//输入要转换的整形
test=after;//由系统强制转换为浮点
b=(char *)&test;//强制转换,让字符指针指向该浮点,便于下面输出其各字节
for(i=sizeof(test)-1;i>=0;i--)//单精度共4字节
{
printf("%x",int(b[i]));//输出各字节的内容,16进制
if(int(b[i])==0)//若该字节转换的整形值为0,则再加一个零,因为一个字节要输出2位16进制数
printf("0");
}
return 0;
}
#include<stdio.h>
int main()
{
float test=0.0f;
int after=0;
int i=0;
char *b=0;
scanf("%d",&after);//输入要转换的整形
test=after;//由系统强制转换为浮点
b=(char *)&test;//强制转换,让字符指针指向该浮点,便于下面输出其各字节
for(i=sizeof(test)-1;i>=0;i--)//单精度共4字节
{
printf("%x",int(b[i]));//输出各字节的内容,16进制
if(int(b[i])==0)//若该字节转换的整形值为0,则再加一个零,因为一个字节要输出2位16进制数
printf("0");
}
return 0;
}
展开全部
#include <stdio.h>
int main()
{
float a=1234.567;
unsigned long int ia=*(int*)&a;
int i;
for(i=31;i>=0;i--)
{
printf("%d",(ia>>i)&1);
}
return 0;
}
int main()
{
float a=1234.567;
unsigned long int ia=*(int*)&a;
int i;
for(i=31;i>=0;i--)
{
printf("%d",(ia>>i)&1);
}
return 0;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是不是将一个浮点数的 二进制表示形式 显示出来呢
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询