首页 > 其他 > 详细

数据转换-16进制字符

时间:2021-05-13 09:53:39      阅读:36      评论:0      收藏:0      [点我收藏+]

任务详情

  1. 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务

  2. 在utils.h和utils.c中完成16进制字符‘0‘-‘9‘,‘A‘-‘F‘,‘a‘-‘f‘与十六进制数据0-15的转换功能(10’):

int Hex2Char(unsigned int fromi,unsigned char * toc);
int Char2Hex(unsigned char fromc,unsigned int * toi);
  1. 并写出测试代码测试上述函数(不能与下面代码一样),比如:(10’)
unsigned char * c;
Hex2Char(1, &c)
//结果:c = ‘1‘
Hex2Char(15, &c)
//结果:c = ‘F‘
unsigned int i;
Char2Hex(‘1‘, &i);
//结果:i = 1
Char2Hex(‘F‘, &i);
//结果:i = 15
  1. 提交代码(或代码链接)和运行结果
    void StringToHex(char *str, unsigned char *strhex)
    {
    uint8_t i,cnt=0;
    char *p = str; //直针p初始化为指向str
    uint8_t len = strlen(str); //获取字符串中的字符个数

    while(p != ‘\0‘) { //结束符判断
    for (i = 0; i < len; i ++) //循环判断当前字符是数字还是小写字符还是大写字母
    {
    if ((
    p >= ‘0‘) && (*p <= ‘9‘)) //当前字符为数字0~9时
    strhex[cnt] = *p - ‘0‘ + 0x30;//转为十六进制

     	if ((*p >= ‘A‘) && (*p <= ‘Z‘)) //当前字符为大写字母A~Z时
     		strhex[cnt] = *p - ‘A‘ + 0x41;//转为十六进制
     	
     	if ((*p >= ‘a‘) && (*p <= ‘z‘)) //当前字符为小写字母a~z时
     		strhex[cnt] = *p - ‘a‘ + 0x61;  //转为十六进制
     
     	p ++;    //指向下一个字符
     	cnt ++;  
     }
    

    }
    }
    ————————————————

数据转换-16进制字符

原文:https://www.cnblogs.com/422100xj/p/14763015.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!