字符串转化为16进制

原创 2008年10月02日 19:19:00

 字符串转化为16进制数,比如输入字符串char *string="1a5e";经转化后就成为了一个16进制数:0x1a5e

 

int  a16toi( char *pNumber)
{
    int   len,pos,ret   =   0;    

   len   =   strlen(pNumber);   
   pos   =   len;  
          while(pos--)    
    switch(pNumber[pos])  
    {  
       case   '0':   break;  
       case   '1':   ret   +=  ( (len-pos-1)   ?   1   *   1<<(4*   (len-pos-1))   :   1); break;  
       case   '2':   ret   += (  (len-pos-1)   ?   2   *   1<<(4*   (len-pos-1))   :   2); break;   
       case   '3':   ret   +=  ( (len-pos-1)   ?   3   *   1<<(4*   (len-pos-1))   :   3); break;  
       case   '4':   ret   +=  ( (len-pos-1)   ?   4   *   1<<(4*   (len-pos-1))   :   4); break;  
       case   '5':   ret   +=  ( (len-pos-1)   ?   5   *   1<<(4*   (len-pos-1))   :   5); break;  
       case   '6':   ret   +=  ( (len-pos-1)   ?   6   *   1<<(4*   (len-pos-1))   :   6); break;  
       case   '7':   ret   +=  ( (len-pos-1)   ?   7   *   1<<(4*   (len-pos-1))   :   7); break;  
       case   '8':   ret   +=  ( (len-pos-1)   ?   8   *   1<<(4*   (len-pos-1))   :   8); break;  
       case   '9':   ret   +=  ( (len-pos-1)   ?   9   *   1<<(4*   (len-pos-1))   :   9); break;  
       case   'a':   ret   +=  ( (len-pos-1)   ?   10   *   1<<(4*   (len-pos-1))   :   10); break;  
       case   'b':   ret   +=  ( (len-pos-1)   ?   11   *   1<<(4*   (len-pos-1))   :   11); break;  
       case   'c':   ret   +=   ( (len-pos-1)   ?   12   *   1<<(4*   (len-pos-1))   :   12); break;  
       case   'd':   ret   +=  ( (len-pos-1)   ?   13   *   1<<(4*   (len-pos-1))   :   13); break;  
       case   'e':   ret   +=  ( (len-pos-1)   ?   14   *   1<<(4*   (len-pos-1))   :   14); break;  
       case   'f':   ret   +=  ( (len-pos-1)   ?   15   *   1<<(4*   (len-pos-1))   :   15); break;  
       case   'A':   ret   +=  ( (len-pos-1)   ?   10   *   1<<(4*   (len-pos-1))   :   10); break;  
       case   'B':   ret   +=   ( (len-pos-1)   ?   11   *   1<<(4*   (len-pos-1))   :   11); break;  
       case   'C':   ret   +=   ( (len-pos-1)   ?   12   *   1<<(4*   (len-pos-1))   :   12); break;  
       case   'D':   ret   +=   ( (len-pos-1)   ?   13   *   1<<(4*   (len-pos-1))   :   13); break;  
       case   'E':   ret   +=   ( (len-pos-1)   ?   14   *   1<<(4*   (len-pos-1))   :   14); break;  
       case   'F':   ret   +=  ( (len-pos-1)   ?   15   *   1<<(4*   (len-pos-1))   :   15); break;  
       default:  
         break;  
    }  
  return   ret;
}

字符串转换为十六进制

一般的程序对字符串操作,串口程序却时常采用十六进制串。我在本在的社区中看到一位大侠的一个转换算法不错,贴出来和大家贡献。char ConvertHexChar(char ch);int String2...
  • bwmwm
  • bwmwm
  • 2007年08月17日 11:53
  • 13886

java十六进制字符串 转化为整形

import java.io.File; public class AndroidLayoutReflat {     public static void main(String[] a...
  • liulipuo
  • liulipuo
  • 2013年01月09日 15:17
  • 3377

将字符串转换为16进制的字符串(常用在串口编程中)

string StringToHex(LPCSTR lpSrc, char chTag = 0) {//将字符串转换为16进制的字符串; chTag为分界符,如果为0x20表示空格 string ...
  • komtao520
  • komtao520
  • 2015年09月16日 17:10
  • 627

c++十六进制字符串转数字(数值)

================================================= 本文为khler原作,转载必须确保本文完整并完整保留原作者信息及本文原始链接 E-mail: k...
  • ghevinn
  • ghevinn
  • 2015年08月27日 13:51
  • 5764

十六进制字符串(CString或char[]) 和 BYTE,char数组 相互转化

 例如:     CString   sztmp   =   "40   40   50   65 ";     BYTE   char[3];  //如何把如上的sztmp 每两位为一...
  • myiszjf
  • myiszjf
  • 2015年09月29日 19:13
  • 2135

QT:十六进制字符串转数字整形

//大写 int detection::Hextoi(QString s,char len) { int i; int n = 0; if(s.length()
  • zx7415963
  • zx7415963
  • 2015年06月20日 16:58
  • 1060

十六进制字符串转byte数组实现

字符串转byte数组,就是实现如下功能:把一个字符串,比如“E4F1C3A81F”每两位作为一个十六进制数存到一个unsigned char 型的数组(buf)里,buf[0] = 0xE4,buf[...
  • u012372584
  • u012372584
  • 2017年12月26日 13:55
  • 402

字符串Ascll格式转16进制

之前做过一些项目需要用到ASCLL码转换到16进制,在网上搜索后发现,大部分都是10进制数字转16进制数据,这对于8位字符类型unsignal char (这里不用char,因为char是-12...
  • a29562268
  • a29562268
  • 2017年03月27日 22:00
  • 751

按照要求把十六进制字符串转为十六进制数

* 题目描述:输入一个字符串,长度是16的整数。 * 需要按照格式要求输出: * 00000000 6162616465666768696a6b6c6d6e6f70 abcdefghijklm...
  • u014282557
  • u014282557
  • 2017年04月03日 23:22
  • 217

字符串转十六进制与十六进制转字符串示例

package stringtohex; /** * java中使用16位(2个字节)的Unicode字符集编码作为字符编码格式。 * char类型的值也可直接作为整数类型的值来使用,但它是一个1...
  • hxysea
  • hxysea
  • 2014年05月17日 09:55
  • 1409
收藏助手
不良信息举报
您举报文章:字符串转化为16进制
举报原因:
原因补充:

(最多只允许输入30个字)