我需要在C ++中围绕旋转执行3位左端。
到目前为止,我有:
A[i] = (A[i] << 3)|(A[i] >> 5);
A是unsigned char数组。
这是对的吗?如果没有,我该如何解决?另外,测试和查看这是否正确的最佳方法是什么?
由于
答案 0 :(得分:1)
对我来说很好。
如果你真的想测试它,可以手工计算出一堆输入和输出,并检查你的程序是否产生它们。
或设计另一种方法,你绝对肯定会产生结果(例如将无符号字符转换为二进制字符串,旋转字符串,转换回无符号字符)并将两者与所有256种字符进行比较输入。