打印 十六进制数 0x123456 每一位数值

#include
int main()
{
int a=0x123456;///56 34 12

int *p=&a;

/*****用指针实现*******/

return 0;

}

int a = *p<<8

完后打印,不知道是不是这样用,求大牛指点

是要打出0x123456吗

感觉p指针不能实现吧,p一加一就指向下个int了

你应该先确认开发平台能否存你这个数值,一般的就只能存65535。

(*p>>4)&0xf

    int a=0x123456;
    int* p = &a;


    while (*p) {
        printf("%x\n", *p & 0xFF);
        *p >>= 8;
    }

每一位的话是:

    int a=0x123456;
    int* p = &a;


    while (*p) {
        printf("%x\n", *p & 0xFF);
        *p >>= 4;
    }

要打印出每一位 这是一道面试题

打印时要强转成 char*

int main()
{
int a=0x123456;
int* p = &a;
int i=1;

while (*p)
{

      printf("%x\n", (char)*p&0x0f );

    *p >>=4;
}

return 0;
}