我正在阅读C/C++中的位移位操作,我发现了,它描述了左移位和右移位操作。它说
右操作数不应具有大于或等于所移动表达式的位宽的负值或值。这些值的按位变化的结果是不可预测的。
这到底是什么意思?
我做了一个测试,看看如果我试图对整数做10、-1和80的左移会发生什么:
//Test.cpp
#include <iostream>
#include <string>
using namespace std;
int main()
{
int myInt = 16;
int shifted;
cout << "Before le
目标
给定任意大小的2D数组,编写一个程序或函数来交替转换列和行。
示例
a b c d e
f g h i j
k l m n o
第一列中的所有元素向下移动一行,第二列向上移动一行,第三列向下移动一行等等,当它们到达边缘时包装。
k g m i o
a l c n e
f b h d j
第一行中的所有元素都向右移动,第二个元素向左移动,第三个元素向右移动等等,当它们到达边缘时包装。
o k g m i
l c n e a
j f b h d
我将遵循选择最短工作代码作为最佳答案的传统。