读书人

long ld=0x1a2b3c4dl 利用指针跟字节长

发布时间: 2012-12-30 10:43:15 作者: rapoo

long ld=0x1a2b3c4dl 利用指针和字节长度输出里面的 a和3 求教啊 经理难为人
long ld=0x1a2b3c4dl 利用指针和字节长度输出里面的 a和3 求教啊 经理难为人
[解决办法]

#include<stdio.h>
void main()
{long ld=0x1a2b3c4d;
printf("%x\n",(((unsigned long)ld)<<4)>>28);
printf("%x",(((unsigned long)ld)<<16)>>28);



}

[解决办法]
printf("%x\n",(((unsigned long)ld)<<4)>>28);
将ld转换成无符号整数,否则会进行算术右移。
0x1a2b3c4d-->0xa2b3c4d0 --> 0xa
printf("%x",(((unsigned long)ld)<<16)>>28);

[解决办法]

#include <stdio.h>

int main(int argc, char* argv[])
{
long ld = 0x1a2b3c4dl;
char* p = (char*)&ld;

printf("%x, %x\n", p[1] >> 4, p[3] & 0x0f);

return 0;
}

读书人网 >C语言

热点推荐