我正在尝试实现一个函数,它对一个字节进行向左和向右的循环旋转。
我为这两个操作编写了相同的代码。例如,如果向左旋转,1010将变为0101。是这样的吗?
unsigned char rotl(unsigned char c) {
int w;
unsigned char s = c;
for (w = 7; w >= 0; w--) {
int b = (int)getBit(c, w);//
if (b == 0) {
s = clearBit(s, 7 - w);
} else if (b ==
我想将2D数组的元素“移动”到新的坐标中,这些坐标存储在另外两个数组中。我希望将其自动化,因为实际上我的数组很大(400x200x100)。有些值不会找到他的坐标,也不会被使用,其中一些坐标被蒙住了,我在下面的示例中使用了值0来说明这一点。如果坐标被屏蔽,我想要重新洗牌的数组中的元素将不会被使用。
import numpy as np
#My new coordinates in X and Y directions
mx = np.array([[ 1., 2., 3., 4., 0.],
[ 1., 2., 3., 4., 0.],
[