#include <winsock.h>
#pragma comment(lib, "Ws2_32.lib")//将一个8位数高低4位交换
static unsigned char bswap_8(unsigned char v)
{return ((v & 0xff) << 4) | (v >> 4); //将参数(v & 0xff) << 4 相当于放到高位, v >> 4 位相当于放在低位
}//将一个16位数高低8位交换
static unsigned short bswap_16(unsigned short v)
{return ((v & 0xff) << 8) | (v >> 8);
}//将一个32位数高低16位交换
static unsigned int bswap_32(unsigned int v)
{return ((v & 0xff) << 24) | ((v & 0xff00) << 8) |((v & 0xff0000) >> 8) | (v >> 24);
}enum DataByteOrder
{ABCD,DCBA,BADC,CDAB
};float get_float_databyteorder(const uint16_t *src, DataByteOrder order)
{float f = 0;uint32_t i;switch (order){case ABCD:i = ntohl(((uint32_t)src[0] << 16) + src[1]);memcpy(&f, &i, sizeof(float));break;case DCBA:i = ntohl(bswap_32((((uint32_t)src[0]) << 16) + src[1]));memcpy(&f, &i, sizeof(float));break;case BADC:i = ntohl((uint32_t)(bswap_16(src[0]) << 16) + bswap_16(src[1]));memcpy(&f, &i, sizeof(float));break;case CDAB:i = ntohl((((uint32_t)src[1]) << 16) + src[0]);memcpy(&f, &i, sizeof(float));break;default:break;}return f;
}void set_float_databyteorder(float f, DataByteOrder order, uint16_t *dest)
{uint32_t i;switch (order){case ABCD:memcpy(&i, &f, sizeof(uint32_t));i = htonl(i);dest[0] = (uint16_t)(i >> 16);dest[1] = (uint16_t)i;break;case DCBA:memcpy(&i, &f, sizeof(uint32_t));i = bswap_32(htonl(i));dest[0] = (uint16_t)(i >> 16);dest[1] = (uint16_t)i;break;case BADC:memcpy(&i, &f, sizeof(uint32_t));i = htonl(i);dest[0] = (uint16_t)bswap_16(i >> 16);dest[1] = (uint16_t)bswap_16(i & 0xFFFF);break;case CDAB:memcpy(&i, &f, sizeof(uint32_t));i = htonl(i);dest[0] = (uint16_t)i;dest[1] = (uint16_t)(i >> 16);break;default:break;}
}int main(int argc, char *argv[])
{float f1 = 12.34;uint16_t dst[2];set_float_databyteorder(f1, ABCD, dst);float f2 = get_float_databyteorder(dst, ABCD);return 0;
}

进制转换,16进制与float互转相关推荐

  1. linux c int16进制转10进制,[编程题] 进制转换(16进制转10进制)

    [编程题] 进制转换 3/3 [编程题] 进制转换 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. ...

  2. 10进制转换16进制补足0_信息技术教师资格必考内容——进制换算(一)

    前两天给大家整理了信息技术教师资格笔试科目三的必考内容,戳蓝字回顾弄懂这些,信息技术教师资格笔试提高30分!信息技术教师资格笔试--这道20分的题居然这么简单!有小伙伴问还有哪些必考内容进制换算也是必 ...

  3. 【蓝桥杯】python进制转换16进制转8进制。16进制转10进制。10进制转16进制。

    问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 样例输入 2 39 123ABC 样例输出 71 4435274 n = int(input()) #输入一个正整数n,表示n个十六进制正整 ...

  4. 使用 Shell 运算进行进制转换 16进制转10进制

    使用 Shell 运算进行进制转换 工作时候常常遇到一些问题,拿到的数字是16进制的,但是运算的时候是10进制的,shell可以很方便的处理这类的进制转换问题,一种情况是使用 Shell 运算把一个数 ...

  5. 10进制转换16进制C代码实现

    其实这个题目可以用严蔚敏数据结构书上讲的栈实现 #include<stdio.h> #define N 8 #define k 16 void tran(int num) { int ar ...

  6. 【python】用python进行进制转换(10进制、2进制、16进制)

    进制转换 ① 16进制转10进制 ② 16进制转2进制 ③ 10进制转16进制 ④ 10进制转2进制 ⑤ 2进制转16进制 ⑥ 2进制转10进制 博客由来写在前面:由于计组老师要求我们课后查一下进制转 ...

  7. 利用10位AD转换器 及 LED 数码管,实现由AD转换器采集温度,并用数码管显示。温度超出一定范围,LED 指示灯闪烁报警。(主要分析进制16进制转换10进制,并用数码管显示问题)

    ** 题目: ** 利用原有的电路 AD 及 LED 数码管显示等例子,进行整合.实现由 AD转换器采集温度(用可调电阻模拟),温度在数码管上显示.当温度超出一定范围,用 LED 指示灯进行闪烁报警. ...

  8. python16进制转10进制_python 字节串及10进制,16进制相关转换

    进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等 整数之间的进制转换: 10进制转16进制: hex(16) ==> 0x10 16进制转10进制: in ...

  9. 16进制数组转成10进制 qt_QT 16进制 ASII   10进制 转换

    //16进制字符串转字节数组 static QByteArray HexStrToByteArray(QString str) { QByteArray senddata;  //发送数据 int h ...

  10. C# 数字转16进制和字符串转换16进制

    数字转换16进制.前提是你输入的必须是数字,而不是别的东西. private string StringToHexString(string s)//数字转换16进制{long Num = Conve ...

最新文章

  1. 我的世界java怎么骑马,我的世界怎么骑马?方法解答
  2. python浪漫代码-使用Python代码的程序员也浪漫
  3. P1198 [JSOI2008]最大数
  4. Android C/C++ 开发
  5. android mysql开发工具_Android开发工具--adb的使用
  6. 10个在线Web设计开发工具介绍
  7. 前端请求接口post_前端如何优雅地模拟接口请求?(给你的代码加点小意外)
  8. 源数据怎么排查重复MySQL_面试官:在使用mysql数据库时,遇到重复数据怎么处理?...
  9. django orm 之makemigrations和migrate命令
  10. 迎接2019多校联合新生训练赛(2018/12/31)
  11. 【快速高斯模糊的实现】
  12. 计算机怎么知道用户名和密码,电脑的用户名和密码怎么查看
  13. 电子内窥镜的研究现状及发展趋势
  14. C#调用Qt写的dll,并处理异常来自 HRESULT:0x8007000B
  15. 嘉兴 机器人仓库 菜鸟_菜鸟物流嘉兴未来园区的工业机器人系统运维员的一天...
  16. 五年磨一剑:滴滴顺风车服务端之稳定性规范
  17. php new object delete,DeleteObject()函数
  18. 部署hudson时报错解决方案
  19. 代理服务器导致连接不上局域网问题
  20. 读书笔记(七)--IoT Security

热门文章

  1. Redis生产环境你还敢用keys?我劝你放下屠刀,回头是岸!
  2. Java--创建窗口和程序片
  3. 华为WLAN无线漫游配置
  4. 说说seo中的快速排名原理
  5. Facebook libra白皮书
  6. 英语计算机面试问题,面试中英语计算机证书类问题
  7. 24届近3年安徽大学自动化考研院校分析
  8. 新企业文化—重获工作场所的活力 学习笔记一 简单的介绍
  9. NPOI合并单元格--CellRangeAddress
  10. 小程序快速入门到项目开发 2(小程序appID获取和目录结构)