C/C++ float转换二进制

本文介绍了一种在C++中将float转换为二进制字符串的方法,涉及地址转换、字节序判断等步骤。作者分享了代码,并指出在字节序调整上可能存在错误,欢迎读者交流讨论。
摘要由CSDN通过智能技术生成

        昨天晚上朋友让帮忙写个程序,C++中将float转换成二进制流输出,刚开始一点点的转啊,哎,直接哭了。一晚上也没搞定。

        回去查了点资料,又找同学商量了一下,找到个相对好的点的方法,验证了几个,结果是对的,但也不保证其他的也对,贴出来,大家交流一下

步骤:

1、首先取float的地址,强制转换成char*类型后赋值给一个char *的指针cp,然后对cp开始的四个字节按照char类型转换成二进制字符串。

2、转换结束之后,对计算机进行高低字节序判断,若是高字节序,则对得到的二进制字符串进行逆序。

==》这一步有问题,字节序判断后的调整不应该是对整个二进制字符串进行逆序,而是对四个字节进行顺序调整,在此谢谢 Azrael_cc 兄,代码直接调整了一下,没验证结果

代码:

#include <iostream>
#include <string>
using namespace std;
string c2b(char *cp, int n);
int isBigEndian();
int main()
{
	float fval = (float)4.25;
	char
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值