
a<<8 返回的值是一个int
可以这样做个测试:
printf("%d",sizeof(a<<8)
16位编译器会输出2
32位编译器会输出4
比如将十六进制数“2A12”拆成"2A"和"12",然后再把"2A"和"12"对调位置合成"122A"
#include<stdio.h>
main()
{
int a=0x2a12
char b,c
b=a>>8
c=a&0x0ff
printf("%x,%x",b,c)
a=(c<<8)|b
printf("\n%x",a)
return 0
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)