将16进制转化为字符串


//功能:将16进制转换成字符串
//时间:2018年9月13日 

#include "stdio.h"
#include "string.h"
char data[5]={0x12,0xfe,0x5b};
char input[10];
int main(void)
{
    int i, b,c;
    int j=0;
    for(i=0;i<strlen(data);i++)
    {
        if((data[i]&0xf0)<=0x90)                                 //取出16进制的高位,判断是否小于等于9 
        {
                input[j]=((data[i]&0xf0)>>4)-0x00+48;            //得出高位的AISSIC码值 
        }
        else                                                     //大于9,即a~f      
            input[j]=((data[i]&0xf0)>>4)-0x0a+97;  
            
        if((data[i]&0x0f)<=0x09)                                 //取出16进制的低位
        {
            input[j+1]=(data[i]&0x0f)-0x00+48;
        }    
        else
            input[j+1]=(data[i]&0x0f)-0x0a+97;
        
        j+=2;
    }
    printf("%s",input);
 
}

猜你喜欢

转载自blog.csdn.net/baidu_15547923/article/details/82814066