(本博客只提供很厉害的方法,没有代码)
项目需求是需要把一个字节(8bit)的二进制数转换成一个十六进制的数值,然后发送给上位机;
我自己试着编写代码,思路是把这个8bit的二进制数存放到一个数组里面,分高4bit和低4bit,分别转换成十进制,然后用switch判断这个十进制,转换成对应十六进制数,例如十进制1对应十六进制1,十进制10对应十六进制A;
问题来了,这样就把一个十六进制拆分成2个数,例如0x1A,我只求出1和A,但是不知道怎样用代码翻译成0x1A。(补充自:2018/11/30 例如test[0] = 0x01;test[1] = 0x0A; 合成是temp = test[0]<<4 | test[1] ; //0x1A 核心是移位操作)
想了其他一些方法,百度了许多资料,都没有找到二进制转换成十六进制输出的C代码。有些代码虽然可以转换了,还是输出的十六进制也是拆分成字符串形式输出的,不是一个完整的十六进制。

问了同事,原来有更加简单的方法实现项目需求;

从项目背景说起,是一对光幕测身高的设备,光幕接收端通过8个 TSOP6238 接收红外光,当某个节点没有接收到红外光,就把这个节点置1,否则置0;

所以我才想要把8个bit的二进制数转换成十六进制。

其实不用这样复杂,方法是最基本的C语言位操作
划重点:::
先初始化一个变量为0x00(例如RS485_2_TXbuf[3] = 0x00;),设置一个8次轮询,每个轮询中,当接触不到红外光,表示这个节点被挡住,置1,用或操作(|);
例如RS485_2_TXbuf[3] |= 0x01<<1;RS485_2_TXbuf[3] |= 0x01<<5;
最后得到的这个变量,就是最终的形态,也是一个十六进制数。

二进制转换成十六进制输出的C代码相关推荐

  1. java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法

    Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...

  2. c语言输出字符的十六进制,用c语言输入键盘上的字符后转换成十六进制输出

    用c语言输入键盘上的字符后转换成十六进制输出 悬赏分:10 | 提问时间:2010-9-13 10:26 | 提问者:745922085 | 问题为何被关闭 其他回答 共3条 #include #in ...

  3. 位运算-将二进制转换成十六进制

    背景 将二进制数转换成十六进制的表现形式.(就是在获取32位二进制的每四位,拿到二进制的最低四位) 实现 代码实现 public static void BitCalc() {//获取60的二进制Sy ...

  4. Shell 二进制转换成十六进制的方案

    提问:100101011001010101000111100101 转换成十六进制数是多少? 代码如下: #!/bin/bash bin2Hex(){     local bin=$1     if ...

  5. 简单的利用栈 将二进制转换成十六进制

    将刚刚的二进制转换成八进制的程序改改就行了,如果有能读懂刚刚程序的人,这个so easy 就是换几个数,我就不多解释了 #include <stdio.h> #include <st ...

  6. java 二进制转换成十六进制字符串_将二进制字符串转换为十六进制字符串JAVA

    如果您不必自己实现该转换,则可以使用现有代码: int decimal = Integer.parseInt(binaryStr,2); String hexStr = Integer.toStrin ...

  7. 通过代码实现将十进制转换成十六进制

    通过代码求50的十六进制 上一篇博客已经介绍了十进制转换成十六进制的方法,因此我们可以得到50的二进制为00110010,十六进制为32.下面我将介绍两种方法求出50的十六进制. 方法一:自动实现 思 ...

  8. python把浮点数转换成16进制_delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)...

    重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...

  9. 十进制转换成十六进制小程序(强制转换和移位运算符)

    涉及知识点:强制类型转换,移位运算符,十进制转换十六进制. 十进制数 60 转换成十六进制过程分析 60的二进制表示: 0000-0000  0000-0000  0000-0000  0011-11 ...

最新文章

  1. 手把手教你 MongoDB 的安装与详细使用(一)
  2. Lambda表达式关于like问题(未解决)
  3. MOSS2007 webcast系列(二)
  4. Tomcat参数设置,解决内存溢出问题
  5. 推进教育人工智能?网易云和网易波特 “四步走”
  6. pycharm 进行远程服务器修改与调试
  7. docker mysql镜像连接不上_还在手动安装应用?试一下Docker
  8. Supplemental Logging
  9. (99)Verilog HDL:呼吸灯设计
  10. 【讨论】js对数组去重复值
  11. Linux查看CPU使用率、内存使用率等
  12. UpdatePanelAnimation
  13. ftp改为sftp_ftp自动传输软件,ftp自动传输软件使用方法详细介绍
  14. IO-同步、异步、阻塞、非阻塞
  15. 如何使用OBS录制采集卡视频内容
  16. 通过poi导出带图片的Excel表格
  17. linux镜像使用什么pe安装系统,Linux系统ISO镜像文件可不可以用pe启动盘来安装
  18. Linux网络——套接字编程
  19. 酒店无线wifi覆盖方案
  20. 亲历网络诈骗,骗子QQ(1125513454)

热门文章

  1. 智慧管廊解决方案-最新全套文件
  2. QTabWidget自定义,拖入拖出Tab页的简易实现
  3. m32f1 68脚 sch
  4. 网站服务器和seo,网站更换服务器而不影响SEO的两个关键因素【实战经验分享】...
  5. 皮尔兹继电器777585
  6. 什么是人们常用的计算机设备之一,2012全国计算机一级考试一级B样题
  7. 深入理解Linux虚拟内存管理(一)
  8. 世界顶级杀毒软件排名:十二款世界顶级杀毒软件下载!
  9. 22年前的9月14日中国发出的第一封电子邮件
  10. JDK1.8安装教程