找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2702|回复: 2
打印 上一主题 下一主题
收起左侧

求一个byte与hex相互转换的函数C语言

[复制链接]
回帖奖励 2 黑币 回复本帖可获得 2 黑币奖励! 每人限 1 次
跳转到指定楼层
楼主
ID:404720 发表于 2018-12-7 13:06 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求一个byte与hex相互转换的函数C语言
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:439075 发表于 2018-12-7 19:01 | 只看该作者
byte类型的数据本身就是八位二进制的,如果你想转为字符串的话有两种方法
方法1
unsigned char  a;
unsigned char  b;
unsigned char  c;
a  = 0xMN;  // M表示高位,N表示低位
b =  a >> 4; //b获得a的高位数据
c =  a & 0x0F; //c获得a的低位数据
如果希望得到ASCII码,则
b = (b > 9) ? b+'0'+7 : b+'0';
c = (c > 9) ? c+'0'+7 : c+'0';
方法2
include "stdio.h"
unsigned char  a;
char buf[10];
  a  = 0xMN;  // M表示高位,N表示低位
sprintf(buf,"%02X",a);  // buf数组的前两字节分别为M和N的ASCII字符。

回复

使用道具 举报

板凳
ID:441808 发表于 2018-12-7 19:45 | 只看该作者
public static byte[] Hex2Byte(string byteStr)
{
try
{
byteStr = byteStr.ToUpper().Replace(" ", "");
int len = byteStr.Length / 2;
byte[] data = new byte[len];
for (int i = 0; i < len; i++)
{
data[i] = Convert.ToByte(byteStr.Substring(i * 2, 2), 16);
}
return data;
}
catch (Exception ex)
{}
}

public string ByteToHexString( byte[] bytes)
{
StringBuilder sb = new StringBuilder();
if (bytes != null || bytes.Length > 0)
{
foreach (var item in bytes)
{
sb.Append(item.ToString("x2"));
}
}
return sb.ToString();
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表