一种把16进制字符串形式的数表示成数字的方法

比如一个数字,16进制表示为0xC5,10进制的大小为197,16进制字符串形式表示为"C5"。现在如何把"C5"转换成197?

首先"C5"由两个字符组成:‘C’和’5’。'C’是高位4个bit位的16进制表示,10进制的大小是12,二进制为:1100。'5’是低位4个bit位的16进制表示,10进制的大小是5,二进制为:0101。高位4个bit往左移4个bit位,再加上低位4个bit,得到的数字:1100 0101,就是数字197。

所以我们要做的,是把字符’C’和’5’转换为10进制数字,然后把’C’的10进制数字往左移4个bit位,然后和’5’的10进制数字相加,得到的就是"C5"的数字类型。

先写一个函数,能够把0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F这16个16进制字符转换为数字 :

byte char_to_hex(char chr)
{
  if ((chr >= '0') && (chr <= '9'))
  {
    return chr - '0';
  }
  if ((chr >= 'A') && (chr <= 'F'))
  {
    return chr - 'A' + 10;
  }
  if ((chr >= 'a') && (chr <= 'f'))
  {
    return chr - 'a' + 10;
  }
  return -1;
}
<

猜你喜欢

转载自blog.csdn.net/wjz110201/article/details/131529924
今日推荐