微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 怎样使得两个ASCII码字符转换为一个字节16进制数据

怎样使得两个ASCII码字符转换为一个字节16进制数据

时间:10-02 整理:3721RD 点击:
如:ASCII码   ‘A’,‘C’,如何使得该两个字符转换成0xAC,谢谢!

...你的需求里面没有写0-9.。我还以为你不需要。自己增加一个字符就好了

#include <stdio.h>
#include <stdlib.h>
//ASCII码   ‘A’,‘C’,如何使得该两个字符转换成0xAC
//按照你的要求,应该只能输入ABCDEF这个六个英文汉字
unsigned char change(unsigned char a,unsigned char b)
{
        unsigned char ucTmp = 0x00;
        
        if( ( (a >= 'A') && (a <= 'F') )&& ( (b >= 'A') && (b <= 'F') ) )
        {
                ucTmp = (a - 'A' + 10 << 4) | (b - 'A' + 10 << 0);
        }
        
        if( ( (a >= 'a') && (a <= 'f') )&& ( (b >= 'a') && (b <= 'f') ) )
        {
                ucTmp = (a - 'a' + 10 << 4) | (b - 'f' + 10 << 0);
        }
        
        printf("0x%02x",(int)ucTmp);
        
        return ucTmp;
}
int main()
{
        change('A','D');
        system("pause");
        return 0;
}

那0到9呢?不能这样做吗?把‘1’和‘2’变为0x12,谢谢指点!

6666666666666666666666666

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top