二进制转换成十六进制输出的C代码
(本博客只提供很厉害的方法,没有代码)
项目需求是需要把一个字节(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代码相关推荐
- java代码二进制转为十六进制_Java 中二进制转换成十六进制的两种实现方法
Java 中二进制转换成十六进制的两种实现方法 每个字节转成16进制,方法1 /** * 每个字节转成16进制,方法1 * * @param result */ private static Stri ...
- c语言输出字符的十六进制,用c语言输入键盘上的字符后转换成十六进制输出
用c语言输入键盘上的字符后转换成十六进制输出 悬赏分:10 | 提问时间:2010-9-13 10:26 | 提问者:745922085 | 问题为何被关闭 其他回答 共3条 #include #in ...
- 位运算-将二进制转换成十六进制
背景 将二进制数转换成十六进制的表现形式.(就是在获取32位二进制的每四位,拿到二进制的最低四位) 实现 代码实现 public static void BitCalc() {//获取60的二进制Sy ...
- Shell 二进制转换成十六进制的方案
提问:100101011001010101000111100101 转换成十六进制数是多少? 代码如下: #!/bin/bash bin2Hex(){ local bin=$1 if ...
- 简单的利用栈 将二进制转换成十六进制
将刚刚的二进制转换成八进制的程序改改就行了,如果有能读懂刚刚程序的人,这个so easy 就是换几个数,我就不多解释了 #include <stdio.h> #include <st ...
- java 二进制转换成十六进制字符串_将二进制字符串转换为十六进制字符串JAVA
如果您不必自己实现该转换,则可以使用现有代码: int decimal = Integer.parseInt(binaryStr,2); String hexStr = Integer.toStrin ...
- 通过代码实现将十进制转换成十六进制
通过代码求50的十六进制 上一篇博客已经介绍了十进制转换成十六进制的方法,因此我们可以得到50的二进制为00110010,十六进制为32.下面我将介绍两种方法求出50的十六进制. 方法一:自动实现 思 ...
- python把浮点数转换成16进制_delphi 浮点数float转换成十六进制字符串的方法(FloatToHex)...
重新书写了float型转为十六进制的delphi程序 Function FloatToHex(Value: single): string; var l, i: integer; HexText,te ...
- 十进制转换成十六进制小程序(强制转换和移位运算符)
涉及知识点:强制类型转换,移位运算符,十进制转换十六进制. 十进制数 60 转换成十六进制过程分析 60的二进制表示: 0000-0000 0000-0000 0000-0000 0011-11 ...
最新文章
- 手把手教你 MongoDB 的安装与详细使用(一)
- Lambda表达式关于like问题(未解决)
- MOSS2007 webcast系列(二)
- Tomcat参数设置,解决内存溢出问题
- 推进教育人工智能?网易云和网易波特 “四步走”
- pycharm 进行远程服务器修改与调试
- docker mysql镜像连接不上_还在手动安装应用?试一下Docker
- Supplemental Logging
- (99)Verilog HDL:呼吸灯设计
- 【讨论】js对数组去重复值
- Linux查看CPU使用率、内存使用率等
- UpdatePanelAnimation
- ftp改为sftp_ftp自动传输软件,ftp自动传输软件使用方法详细介绍
- IO-同步、异步、阻塞、非阻塞
- 如何使用OBS录制采集卡视频内容
- 通过poi导出带图片的Excel表格
- linux镜像使用什么pe安装系统,Linux系统ISO镜像文件可不可以用pe启动盘来安装
- Linux网络——套接字编程
- 酒店无线wifi覆盖方案
- 亲历网络诈骗,骗子QQ(1125513454)