我定义了一个 char *p;现在我希望把其中的内容用十六进制打印出来,该怎么做?

解决方案 »

  1.   

    #include "Maths.h"bool NtoS(DWORD Data,INT Base,CHAR * Buffer,DWORD Size)
    {
    DWORD Mod,Inc;
    INT Len; if(Buffer==NULL)
    {
    return false;
    } if(Size<=NULL)
    {
    return false;
    } if((Base!=2) && (Base!=8) && (Base!=10) && (Base!=16))
    {
    return false;
    } Len=1; Inc=Base; while(Mod=Data/Inc,Mod!=NULL)
    {
    Len++; Inc*=Base; if(Inc==NULL)
    {
    break;
    }
    } if(Len>Size)
    {
    return false;
    } memset(Buffer,NULL,Size); do
    {
    Mod=Data%Base; Data-=Mod; Data/=Base; if(Mod<=9)
    {
    Buffer[--Len]=Mod+0x30;/*0..9*/
    }
    else
    {
    Buffer[--Len]=Mod-10+0x41;/*A..F*/
    }
    }
    while(Data!=NULL); return true;
    }
      

  2.   

    char *p = "....";
    while (*p != '\0')
    {
        printf("%.2lX", *p);
        p ++;
    }