c_cpp 将二进制转换为十六进制或十六进制转换为二进制

Posted

tags:

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

/*
 * create by wention 11,23,2013
 */

#define NaN 255
char  decode_table[]  = "0123456789ABCDEF";
//char  decode_table1[] = "0123456789abcdef";
unsigned char encode_table[] = {0,1,2,3,4,5,6,7,8,9,NaN,NaN,NaN,NaN,NaN,NaN,NaN,10,11,12,13,14,15};

void binary_to_hex( unsigned char* binary, //a point of data need to be convert
              unsigned long length,        //size of binary data
              unsigned char* buffer)       //a buffer pointer to receive output note that
      {                                     //  the function does not malloc memory for it
          unsigned long k =0;                   // current buffer writen pointer
          for ( unsigned long i =0; i < length; i++)
          {
              buffer[k++] = decode_table[ binary[i] >> 4];
              buffer[k++] = decode_table[ binary[i] & 0x0F];
          }
      }
////////////////////////////////////////////////////////////////////////////////////
//
//   bool hex_to_binary(unsigned char* hex,    //a point of data need to be convert
//                   unsigned long length,     //size of data
//                   unsigned char* buffer)    //a buffer pointer to receive output note that
//                                                     //  the function does not calloc memory for it




bool hex_to_binary(unsigned char* hex,
                   unsigned long length,
                   unsigned char* buffer)
      {                                  
          unsigned long k=0;
          if ( ( length%2) )
           return false;

          for( unsigned long i =0; i < length/2; i++)
          {
              unsigned char l = encode_table[ hex[ k++]-0x30] << 4;
              unsigned char r = encode_table[ hex[ k++]-0x30];
              buffer[i] = l | r;
          }
          return true;
      }

以上是关于c_cpp 将二进制转换为十六进制或十六进制转换为二进制的主要内容,如果未能解决你的问题,请参考以下文章

c_cpp C片段将十进制转换为二进制

c_cpp 108.将Sorted Array转换为二进制搜索树

c_cpp Objective-C类将十六进制字符串转换为UIColor。支持#RGB#ARGB #RRGGBB #AARRGGBBUsage:[UIColor colorWithHexString:

c_cpp [十进制数转罗马数字]将一个十进制数字符串转换为罗马数字字符串#字符串处理

c_cpp 转换为二进制表示的.cpp

使用 Javascript 将十进制转换为十六进制或 Unicode