Siv*_*aSu 4 c c++ bit-manipulation bit-shift bitwise-operators
我对左移操作员有疑问
int i = 1;
i <<= (sizeof (int) *8);
cout << i;
Run Code Online (Sandbox Code Playgroud)
它打印1.
它是如何以及为何是1?
cni*_*tar 14
假设sizeof(int)
您的平台上有4个.然后表达式变为:
i = i << 32;
Run Code Online (Sandbox Code Playgroud)
标准说:
6.5.7-3
如果右操作数的值为负或大于或等于提升的左操作数的宽度,则行为未定义.