永发信息网

如何实现将float类型与二进制进行互相转换

答案:2  悬赏:80  手机版
解决时间 2021-03-16 07:17
如何实现将float类型与二进制进行互相转换
最佳答案
float 按 IEEE 754 规定存放。
可以用 联合体 按16进制 输出它的4 个字节,再 1位拉4位成 2进制。
反之 亦然。
例如:
#include
union FS {
float f;
char s[4];
} fs;
int main( )
{
int i;
fs.f=12.345;
for (i=3;i>=0;i--) printf("%02x ",0xff & fs.s[i]);
return 0;
}

输出: 41 45 85 1f
2进制: 01000001 01000101 10000101 00011111
全部回答
float b=2.38; unsigned short s=256; void f2bin(float *p) { char c[sizeof(float)*8];unsigned long n;int i=0; if(sizeof(float)!=sizeof(long))exit(1); n=*((unsigned long*)p); do { c[i++]=n%2; n/=2; }while (n); for (i--;i>=0;i--) { printf("%d",c[i]); } printf("\n"); } void us2bin(unsigned short *p) { char c[sizeof(unsigned short)*8];unsigned int n;int i=0; if(sizeof(unsigned short)!=sizeof(unsigned short ))exit(1); n=*((unsigned short*)p); do { c[i++]=n%2; n/=2; }while (n); for (i--;i>=0;i--) { printf("%d",c[i]); } printf("\n"); } main() { f2bin(&b); us2bin(&s); } 数组转什么?
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
温州国际贸易中心这个地址在什么地方,我要处
排列一段话。
梦见店里的货没有了
X的平方减X加1的过程和答案
博亚办公用品地址在哪,我要去那里办事
老君堂大药房在哪里啊,我有事要去这个地方
火车K210火车07车厢042号是靠窗的吗
心好痛 痛到无法呼吸是那首韩文歌的歌词
汇荣房产在哪里啊,我有事要去这个地方
攀龙附凤的主要内容,20字
Ccarb是什么意思
招远 哪有测字起名的,道行深的,有联系方式
渝鱼菜馆地址在哪,我要去那里办事
石家庄市公安局矿区分局贾庄巡防中队地址在哪
阅读短文,并根据短文内容判断正(T),误(F
推荐资讯
C#窗体应用程序与oracle数据库
重庆市的高中历史教材是什么版本和样子的?
作文:只要你过得比我好
本田摩托车,复古的那款好些,又不太贵的
专门清理WOW插件的官方或第三方软件
鸿福祥超市这个地址在什么地方,我要处理点事
电信双城通从开通的地主叫原号码地号码怎样计
win7装内存补丁后不识别独立显卡
穿短裤的发糕,打一卡通人物。答案是1阿童木2
中国联通油田营业厅这个地址在什么地方,我要
汽车挂牌今天什么时辰是吉时
单门小冰箱价格是多少
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?