数据转换-16进制字符

Posted hexi&echo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据转换-16进制字符相关的知识,希望对你有一定的参考价值。

任务详情

  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进制字符的主要内容,如果未能解决你的问题,请参考以下文章

数据转换-16进制字符

PHP里,16进制格式字符串,转换成具体值的方法

C++ 字符串与16进制字符串之间的转换

android 常用的代码

MFC 编辑框输入16进制字符串转换为16进制数或者10进制数据计算

怎样在PHP中把16进制HEX数据转换为2进制数据呢?