C++标准有没有规定,当整数向右移位时,要不要扩展符号位?如题。[解决办法]有符号整数要扩展 无符号整数不扩
C++标准有没有规定,当整数向右移位时,要不要扩展符号位?
如题。
[解决办法]
有符号整数要扩展 无符号整数不扩展
[解决办法]
- C/C++ code
int main(){ int i; unsigned int j; i = 0xffffffff; j = 0xffffffff; for(int k=1;k<32;k++) cout<<(i>>k)<<endl; cout<<"Next is j"<<endl; for(int k=1;k<32;k++) cout<<(j>>k)<<endl;}
[解决办法]
不同的编译器是不同的,可以查看帮助手册, 或运行测试代码检验.
[解决办法]
printf("%08x %08x\n",0xFFFF0000u>>8,(signed)0xFFFF0000>>8);//00ffff00 ffffff00
[解决办法]
有规定,
规定当左操作数为负的有符号数,其结果由实现定义.
也就是说不同编译器可能会不同.
[解决办法]
