C/C++ 关于float和double类型与二进制的转换实现。。
来源:互联网 发布:苍穹剑诀坐骑进阶数据 编辑:程序博客网 时间:2024/06/11 01:30
void FloatToString(float fNum,char *pStr){unsigned int nData = ((unsigned int *)&fNum)[0];for (int i = 0;i < 32;i ++){pStr[31 - i] = (char)(nData & 1) + '0';nData >>= 1;}pStr[32] = '\0';}void DoubleToString(double dNum,char *pStr){UINT64 nData = ((UINT64 *)&dNum)[0];for (int i = 0;i < 64;i ++){pStr[63 - i] = (char)(nData & 1) + '0';nData >>= 1;}pStr[64] = '\0';}
float StringToFloat(char *pStr){unsigned int nData = 0;float *pData;for (int i = 0;i < 31;i ++){nData += (pStr[i] - '0');nData <<= 1;}nData += (pStr[31] - '0');pData = (float *)&nData;return *pData;}double StringToDouble(char *pStr){UINT64 nData = 0;double *pData;for (int i = 0;i < 63;i ++){nData += (pStr[i] - '0');nData <<= 1;}nData += (pStr[63] - '0');pData = (double *)&nData;return *pData;}
void PrintfBinary(unsigned char cData){for (int i = 7;i >= 0;i --){if (cData & (1 << i)){cout << "1";} else{cout << "0";}}}float fNum = 7.5;unsigned char *pChar = reinterpret_cast<unsigned char *>(&fNum);for(int i = sizeof(float) - 1; i >= 0; --i){PrintfBinary(pChar[i]);}
以上是简单验证和实现的例子。。
1 0
- C/C++ 关于float和double类型与二进制的转换实现。。
- C语言二进制和float、int类型转换
- C#float与double转换问题
- c/c++中float和double类型的存储
- float类型和double类型的二进制存储
- float类型和double类型的二进制存储 .
- 关于C中float和double的一些问题
- C/C++ 中 int/long/float/double数值类型 与 字符串 互相转换
- C/C++ 中 int/long/float/double数值类型 与 字符串 互相转换
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- C/C++中int/long/float/double数值类型与字符串互相转换
- C/C++中int/long/float/double数值类型与字符串互相转换
- C/C++中int/long/float/double数值类型与字符串互相转换[总结]
- c语言中如何将字符串转换成float和double类型
- c/c++: float和double、long double
- FFMPEG 函数av_guess_format
- 《深入理解C指针》学习笔记
- 菜鸟的基础知识博客
- 返回的cursor师指向第一条之前的,moveToFirst和moveToNext都是指向cursor的第一条数据
- 高次方程问题总结
- C/C++ 关于float和double类型与二进制的转换实现。。
- AutoCompleteTextView自动提示输入框问题
- 如何用nat123创建一个web服务器以达到外网访问内网的目的。
- Centos6.5 下交叉编译最小linux kernel之一(工具链)
- 如何在Xcode8上安装插件
- 使用Hive遇到的错误
- ViewPager+RadioGroup 实现网络加载图片的轮播
- 基于zookeeper的分布式锁实现
- JavaScript中的while和do while循环