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<
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<
相关文章推荐
-  C/C++移位运算符出界后的结果是不可预期的
- C/C++移位运算符出界后的结果是不可预期的
- C/C++移位运算符出界后的结果是不可预期的
- C/C++移位运算符出界后的结果是不可预期的
- C/C++移位运算符出界后的结果是不可预期的
- C/C++移位运算符出界后的结果是不可预期的
- 并发编程<四>并发不可预期结果的根本原因
- C/C++移位运算符出界后的计算规则,需要懂汇编啊!
- C++中一个局部变量,如果没有初始化,它的值是不可预期的?
- C++ 不给力之不可继承
- c++程序员不可不知的101条实用经验
- c++基础---之C++移位运算符
- C&C++(3) - 在C与C++中运行结果不同的程序
- 在VS2005下用C++写的程序,安装到另一台未安装VS2005的电脑上,结果出现如下的问题:““由于应用程序的配置不正确,应用程序未能启动,重新安装应用程序可能会纠正这个问题”。在我自己的机子上就能正常安装运行。查了一下网上的方法: 方法一: 在类似
- C++实现不可继承的类
- opencv生成素描图c++代码实例及运行结果
- opencv生成素描图c++代码实例及运行结果
- opencv生成彩色图c++代码实例及运行结果
- opencv生成人脸轮廓c++代码实例及运行结果
- opencv图像融合c++代码实例及运行结果