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;
}