函数内容 HexString2Byte
参数解释
char* in 存放字符串十六进制的buf
int len buf长度
unsigned char* out 传出存放十六进制数字的数组

int HexString2Byte(char* in, int len, unsigned char* out)
{int i = 0;int j = 0;unsigned char highByte = 0;unsigned char lowByte = 0;if (0 != len%2){/* format error */return -1;}for (i = 0; i < len; i+=2){/* 先获取高位 */if (('0' <= in[i]) && ('9' >= in[i])){highByte = in[i]-0x30;}else if (('A' <= in[i]) && ('F' >= in[i])){highByte = in[i]-55;}else if (('a' <= in[i]) && ('f' >= in[i])){highByte = in[i]-87;}else{return -1;}/* 再获取低位 */if (('0' <= in[i+1]) && ('9' >= in[i+1])){lowByte = in[i+1]-0x30;}else if (('A' <= in[i+1]) && ('F' >= in[i+1])){lowByte = in[i+1]-55;}else if (('a' <= in[i+1]) && ('f' >= in[i+1])){lowByte = in[i+1]-87;}else{return -1;}out[j++] = highByte<<4 | lowByte;}return 0;
}
示例代码
#include <stdio.h>
#include <string.h>int main()
{char str[33] = {"A01A2479672573DF84537DF4C73D3FCC"};unsigned char num[17] = {0};int i = 0;HexString2Byte(str, strlen(str), num);printf("str:%s\n", str);for (i = 0; i < sizeof(num); i++){printf("%02X", num[i]);}printf("\n");return 0;
}
运行结果
str:A01A2479672573DF84537DF4C73D3FCC
A01A2479672573DF84537DF4C73D3FCC00

C语言 16进制字符串转16进制数组 函数示例相关推荐

  1. 16进制字符串转10进制数值

    16进制字符串转10进制数值 描述 写出一个程序,接受一个十六进制的数,输出该数值的十进制表示. 数据范围:保证结果在 1≤n≤2^31−1 输入描述:输入一个十六进制的数值字符串. 输出描述:输出该 ...

  2. 将时间转换为16进制字符串或16进制小端模式byte数据

    1.将String类型的时间转换 1>String类型时间转换为Date类型的时间 2>时间转换为时间戳 3>时间戳转换为16进制字符串 4>16进制字符串转换为16进制小端模 ...

  3. C++ 16进制字符串转16进制数组函数

    @TOCC++ 16进制字符串转16进制数组函数 unsigned char buf[], int len) { if (str != NULL && buf != NULL & ...

  4. java-16进制字符串转16进制int、将10进制的数字转为16进制

    String h="76F41000"; int re= new BigInteger(h, 16).intValue() 将10进制的数字转为16进制字符串 System.out ...

  5. Python根据用户输入的2进制字符串转8进制

    Python根据用户输入的2进制字符串转8进制 问题: 从键盘输入一个由 1 和 0 组成的二进制字符串 s,转换为八进制数输出显示在屏幕上.例如输入'1100',输出'14' 实现1: # 请输入一 ...

  6. C++ 整型转16进制字符串或16进制字符串转整型

    前言:整数转16进制字符串,网上大部分的资料都是要传入16进制字符串的位数,有点麻烦.本文介绍的方法自动确定返回的字符串的位数,位数为最小偶数.偶数位方便使用时转成字节数组(unsigned char ...

  7. 16进制字符串转成字节数组、字节数组转16进制字符串、16进制字符串转成2进制字符串、中英文 字符串转16进制、16进制转换成中英文 字符串

    因为需要与硬件相互通讯 用到了这些方法 亲测可用 /*** 16进制表示的字符串 转换为字节数组** @param hexString 16进制表示的字符串* @return byte[] 字节数组* ...

  8. java 16进制字符串转base64_16进制字符串,byte[] ,base64三者之间的转换

    packagecom.lgdz.qydevice.utils; importcn.hutool.core.codec.Base64; importcn.hutool.core.util.Charset ...

  9. c++ byte数组转int, int转byte数组,byte数组转16进制字符串,16进制字符串转byte数组

    int转byte数组: void IntToBytes(int num, unsigned char* bytes, int size) {     for (int i = 0; i < si ...

  10. PowerBuilder实现16进制字符串转换为10进制字符串

    1.该问题困扰了我很久(主要还是基础不牢). 实现原理:将16进制字符串转换为二进制字符串再去计算. 然后利用二进制的性质(逢二进一)进行转换为10进制. 废话不多说,上代码了. 在这里插入代码片 C ...

最新文章

  1. [Spring MVC起步]我的第一个MVC
  2. 每日一皮:地铁上打瞌睡的程序员...
  3. node经验总结(一)
  4. mini-treeselect的动态赋值
  5. 翻译: TypeScript 1.8 Beta 发布
  6. webflux webclient DataBufferLimitException: Exceeded limit on max bytes to buffer
  7. [Nginx]用Nginx实现与应用结合的訪问控制 - 防盗链
  8. Python_堆栈和队列
  9. localStorage和sessionStorage的简单使用
  10. request_irq与request_threaded_irq
  11. svn外网虚拟服务器设置,svn虚拟服务器设置路由器设置
  12. 华农计算机学院院长,中国计算机学会“CCF走进高校”走进华农
  13. PyCharm中的问题记录:failed to sync ide settings. click to sync
  14. 【C语言训练】自由落体问题
  15. 编写计算机程序的几个步骤,第1讲程序设计的一般步骤ok.doc
  16. 自学 java如何入门?
  17. vmware 网络不可达
  18. Zed Shaw:一位老程序员的建议
  19. c++处处有杀机,不小心就要掉坑里
  20. 物联网周刊(第 4 期):边缘人工智能

热门文章

  1. 联想启天M4300不ghost备份的原因与解决
  2. 东北大学校园网登录登出shell脚本
  3. Glass-theme cod mw2 for win7|Windows7主题下载
  4. 《电脑爱好者杂志》(computer fans)2007年度, eMule下载
  5. Foursquare数据集介绍
  6. github百度百科
  7. 让javac在中文系统上输出英文的信息
  8. VMware10虚拟机复制文件卡死解决记录
  9. 【技术文档】百度搜索技巧
  10. 阿里RocketMq试用记录+简单的Spring集成