您的位置:首页 > 编程语言 > C语言/C++

C/C++移位运算符出界后的结果是不可预期的

2008-04-01 17:03 281 查看
以前看到C++标准上说,移位运算符(<<、>>)出界时的行为并不确定:
The behavior is undefined if the right operand is negative, or greater than or equal to the length in bits of the promoted left operand.
我当时也没有深究过这个问题。前几天有个网友来信问起这件事,我才发现,这和Intel CPU的移位运算有关。下面是那位网友的来信以及我的回复:
您好!运算符<<作为位操作中的高效的操作,但我遇到一个问题:下面在VC环境下发现一个很不明白的地方,下面标注。
#include
void main()
{
   unsigned int i,j;
   i=35;

   //为什么下面两个左移操作结果不一样?
   j=1<原因是这样的:i=35;j=1<
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: