十六进制编解码

由于工作需要,写了一个小程序,程序虽小,但是还是常用,呵呵,如下:

int  HexDecode( unsigned  char   * instr,  int  inlen, unsigned  char   * outstr )
{
 
int  i  =   0 ;
 
int  j  =   0 ;
 
while ( i < inlen )
 {  
  
if ( instr[i] >= ' a '  ) outstr[j] = instr[i] - 0x57 ;
  
else  outstr[j] = instr[i] - ' 0 ' ;
  outstr[j] 
=  outstr[j] << 4 ;
  i
++ ;
  
if ( instr[i] >= ' a '  ) outstr[j] = outstr[j] | (instr[i] - 0x57 );
  
else  outstr[j] = outstr[j] | (instr[i] - ' 0 ' );
  j
++ ;
  i
++ ;
 } 
 
return  j;
}

int  HexEncode( unsigned  char   * instr,  int  inlen, unsigned  char   * outstr )
{
 
int  i  =   0 ;
 
int  j  =   0 ;
 
while ( i < inlen )
 {
  
if ( (instr[i] & 0xF0 ) >= 0xA0  ) outstr[j]  =  (instr[i] >> 4 +   0x57 ;
  
else  outstr[j]  =  (instr[i] >> 4 +   ' 0 ' ;
  j
++ ;
  
if ( (instr[i] & 0x0F ) >= 0x0A  ) outstr[j]  =  (instr[i] & 0x0F +   0x57 ;
  
else  outstr[j]  =  (instr[i] & 0x0F +   ' 0 ' ;
  i
++ ;
  j
++ ;
 }
 
return  j;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值