int n;
short s=1536;//十六进制为0600
n = s>>8 | s<<8; //预期结果为0006
cout<<n<<endl<<s;
实际输出的结果是
393222 //十六进制00060006
1536
原因便是在运算过程中由于既有int又有short类型,使得short自动转换为int参与运算,因而出现上述错误
int n;
short s=1536;//十六进制为0600
n = s>>8 | s<<8; //预期结果为0006
cout<<n<<endl<<s;
实际输出的结果是
393222 //十六进制00060006
1536
原因便是在运算过程中由于既有int又有short类型,使得short自动转换为int参与运算,因而出现上述错误