//VC6.0 下编译通过
#include<stdio.h>
void main()
{
//测试大端小端,vc用的是小端(高位在后)
int x=0x31323334;
int *y=&x;
char *pt;
pt=(char *)y;
printf("%d, %x/n",x,x);
for(int i=0;i<4;i++)
{
printf("%c/n",*(pt+i));
}
//测试左移右移,发现vc不是真正的物理移位,而是逻辑移位
x=0x80; //左移
printf("%d, %x/n",x,x);
x <<= 1;
printf("%d, %x/n",x,x);
x=0x01000000;//右移
printf("%10d,%10x/n",x,x);
x >>= 1;
printf("%10d,%10x/n",x,x);
}
本文通过VC6.0编译器进行了一系列测试,包括确定整数存储方式(大端或小端)以及考察左移右移操作的实现方式。测试表明VC使用小端存储,并且其移位操作为逻辑移位而非物理移位。
1045

被折叠的 条评论
为什么被折叠?



