C语言将16进制的数转换为字符串的方法(改进)

C语言将16进制的数转换为字符串的方法(改进)C 语言中的 char 是一字节 也就是 8 个二进制位 正好可以表示成 2 个 16 进制的数

#include <stdio.h> #include <stdlib.h> typedef unsigned char uint8_t; char hexToch (uint8_t old); uint8_t HexToChar(uint8_t temp); int main(){ int i = 0; uint8_t data[5]={ 
  
    
  0x12,0x34,0x56,0xab,0xef}; uint8_t str[10]; uint8_t dst[10]; for(i = 0; i<5;i++) { str[2*i] = data[i]>>4; str[2*i+1] = data[i]&0xf; } for(i = 0; i<10;i++) { dst[i] = HexToChar(str[i]); } for(i = 0; i<10;i++) { printf("%c\n",dst[i]); } return 0; } uint8_t HexToChar(uint8_t temp) { uint8_t dst; if (temp < 10){ dst = temp + '0'; }else{ dst = temp -10 +'A'; } return dst; }

  注意,HexToChar函数中,由于传入的参数都是无符号的,故不用判断正负。
  需要小写的字符可修改此处dst = temp -10 +’a’;
运行结果
这里写图片描述

今天的文章 C语言将16进制的数转换为字符串的方法(改进)分享到此就结束了,感谢您的阅读。
编程小号
上一篇 2024-12-26 19:01
下一篇 2024-12-26 18:57

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ji-chu/96594.html