现在的位置: 首页 > 综合 > 正文

简单、常用的字符串转二进制代码

2018年07月27日 ⁄ 综合 ⁄ 共 1462字 ⁄ 字号 评论关闭
  1. int  
  2. parse( TCHAR *strtext, unsigned char *binbuf )  
  3. {  
  4.     size_t l = _tcslen( strtext );  
  5.     int thelen = 0;  
  6.     size_t i;  
  7.     unsigned char a;  
  8.     unsigned short t;  
  9.   
  10.     for( i = 0; i < l; i++ )  
  11.     {  
  12.         if( XIEGANG == strtext[ i ] )  
  13.         {  
  14.             do  
  15.             {  
  16.                 strtext[ i ] = 0x20;  
  17.                 i++;  
  18.             } while( 0x0a != strtext[ i ] && 0x0d != strtext[ i ] && 0x00 != strtext[ i ] );  
  19.         }  
  20.     }  
  21.   
  22.     for( i = 0; i < l; i++ )  
  23.     {  
  24.         if( ( strtext[ i ] >= '0' && strtext[ i ] <= '9' ) ||  
  25.             ( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' ) ||  
  26.             ( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' ) )  
  27.         {  
  28.             if( strtext[ i ] >= '0' && strtext[ i ] <= '9' )  
  29.                 a = strtext[ i ] - '0';  
  30.             if( strtext[ i ] >= 'A' && strtext[ i ] <= 'F' )  
  31.                 a = strtext[ i ] - 'A' + 10;  
  32.             if( strtext[ i ] >= 'a' && strtext[ i ] <= 'f' )  
  33.                 a = strtext[ i ] - 'a' + 10;  
  34.   
  35.             thelen++;  
  36.   
  37.             if( thelen % 2 )    //如果是第奇数个1,3,5  
  38.             {  
  39.                 t = a;  
  40.             }  
  41.             else  
  42.             {  
  43.                 t <<= 4;  
  44.                 t += a;  
  45.                 *( binbuf + ( thelen / 2 ) - 1 ) = ( unsigned char )t;  
  46.             }  
  47.         }  
  48.     }  
  49.     return thelen / 2;  
  50. }
     
适用于分行读入用"//"当注释的数据。

抱歉!评论已关闭.