c语言float转char,c语言将int转为char
c语言float转char,c语言将int转为char
1、float 的内存分配
3.14数在内存中的表示
-3.14数在内存中的表示
符号位(Sign) : 0代表为正,1代表为负
指数位(Exponent):用于存储科学计数法中的指数数据,并且要加上偏移量(float偏移127,double偏移量1023)
尾数部分(Mantissa):尾数部分
2、什么是大小端?
对于一个由2个字节组成的16位整数,在内存中存储这两个字节有两种方法:一种是将低序字节存储在起始地址,这称为小端(little-endian)字节序;另一种方法是将高序字节存储在起始地址,这称为大端(big-endian)字节序。
大小端
CPU平台:ARM
操作系统:Ubuntu 18.04
编程语言:C/C++
3、float转uint8数组的代码:
void float2u8Arry(uint8_t *u8Arry, float *floatdata, bool key){ uint8_t farray[4]; *(float *)farray = *floatdata; if (key == true) { u8Arry[3] = farray[0]; u8Arry[2] = farray[1]; u8Arry[1] = farray[2]; u8Arry[0] = farray[3]; } else { u8Arry[0] = farray[0]; u8Arry[1] = farray[1]; u8Arry[2] = farray[2]; u8Arry[3] = farray[3]; }}
4、uint8数组转float的代码:
float u8Arry2float(uint8_t *data, bool key){ float fa = 0; uint8_t uc[4]; if (key == true) { uc[3] = data[0]; uc[2] = data[1]; uc[1] = data[2]; uc[0] = data[3]; } else { uc[0] = data[0]; uc[1] = data[1]; uc[2] = data[2]; uc[3] = data[3]; } memcpy(&fa, uc, 4); return fa;}
5、一个example.cpp:
其中float2u8Arry和u8Arry2float函数传入fasle默认表示小端存储:
#include <iostream>#include <cstring>void printArry(unsigned char arr[], int n){ int i; for (i = 0; i < n; i++) { printf("%x ", arr[i]); } printf("\");}float u8Arry2float(uint8_t *data, bool key){ float fa = 0; uint8_t uc[4]; if (key == true) { uc[3] = data[0]; uc[2] = data[1]; uc[1] = data[2]; uc[0] = data[3]; } else { uc[0] = data[0]; uc[1] = data[1]; uc[2] = data[2]; uc[3] = data[3]; } memcpy(&fa, uc, 4); return fa;}void float2u8Arry(uint8_t *u8Arry, float *floatdata, bool key){ uint8_t farray[4]; *(float *)farray = *floatdata; if (key == true) { u8Arry[3] = farray[0]; u8Arry[2] = farray[1]; u8Arry[1] = farray[2]; u8Arry[0] = farray[3]; } else { u8Arry[0] = farray[0]; u8Arry[1] = farray[1]; u8Arry[2] = farray[2]; u8Arry[3] = farray[3]; }}int main(){ float fa = 123.536; std::cout << "fa: " << fa << std::endl; uint8_t u8data[4]; float2u8Arry(u8data, &fa, false); printArry(u8data, 4); fa = u8Arry2float(u8data, false); std::cout << "fa: " << fa << std::endl; return 0;}
6、编译:
g++ example.cpp -o example
7、运行:
./example
编译运行效果
阿木实验室致力于为机器人研发提供开源软硬件工具和课程服务,让研发更高效!
- End -
c语言
- 随机文章
- 魅力马尔代夫下载(让你沉醉在魅力马尔代夫:下载攻略)
- 平凉的马尔代夫河(平凉河上发现类似马尔代夫的热带风光)
- 水屋 马尔代夫(后的:水上屋的马尔代夫体验)
- 化妆视频马尔代夫(在马尔代夫看到自然美 ——化妆视频)
- 旅游世界马尔代夫(探索梦幻蓝色,马尔代夫旅游经验分享)
- 嘉鱼马尔代夫拍照(美好相片留念之旅:嘉鱼探访马尔代夫)
- 头发染色马尔代夫(马尔代夫度假也玩发色,你值得一试!)
- 国内马尔代夫岛屿(中国马尔代夫岛屿:度假胜地重新定义)
- 广东农村马尔代夫(广东农村漫步马尔代夫:重现度假天堂)
- 大庆马尔代夫是哪(大庆市公安局组织警民到马尔代夫旅游)
- 栾川马尔代夫游记(纯净无邪的马尔代夫之旅——栾川游记)
- 海豚视频马尔代夫(马尔代夫海域拍摄到美丽海豚游弋视频)
- 河南孟津马尔代夫(河南孟津打造马尔代夫式海岛度假胜地)
- 福建 马尔代夫(福建游客掀起马尔代夫旅游热潮)
- 犍为鹭岛马尔代夫(重返犍为鹭岛:体验马尔代夫浪漫之旅)
- 湿地公园马尔代夫(马尔代夫湿地公园:大自然的海中明珠)
- 梦想酒店马尔代夫(打造梦幻私属酒店,马尔代夫等你来!)
- 湛江马尔代夫白马(湛江现美景:仿佛置身马尔代夫白马岛)
- 皖南马尔代夫风景(走进中国马尔代夫,探索皖南美丽风景)
- 美丽玉溪马尔代夫(玉溪:“中国马尔代夫”彰显绿色美丽)
- 盛伦 马尔代夫(盛伦岛:马尔代夫奢华渡假胜地)
- 旅游马尔代夫广告(梦幻马尔代夫,走进您的度假心灵之旅)
- 逃脱游戏马尔代夫(马尔代夫逃脱游戏,你能成功逃脱吗?)
- 去马尔代夫莉莉岛(重拾度假热情,马尔代夫莉莉岛召唤您)
- 曼谷再到马尔代夫(从曼谷到马尔代夫,全新旅程等你来!)
- 老高专属马尔代夫(老高的私人度假天堂——马尔代夫岛屿)
- 深圳马尔代夫海边(深圳民众能够在马尔代夫沙滩度假了!)
- 涪陵马尔代夫淹死(涪陵马尔代夫发生严重洪灾致多人罹难)
- 马尔代夫中场分析(马尔代夫中场表现亮眼,预示景气复苏)
- 春节马尔代夫旅行(春节快乐!去马尔代夫过个慵懒的假期)
