0

我需要在 C++ 中围绕旋转做一个 3 位左端。

到目前为止,我有:

A[i] = (A[i] << 3)|(A[i] >> 5);

A 是一个无符号字符数组。

这个对吗?如果不是,我该如何解决?还有什么是最好的测试方法,看看这是否正确?

谢谢

4

1 回答 1

1

在我看来很好。

如果您真的想测试它,请手动计算出一堆输入和输出,并检查您的程序是否生成它们。

或者设计另一种您绝对确定会产生结果的方法(例如,将 unsigned char 转换为二进制字符串、旋转字符串、转换回 unsigned char)并将两者与所有 256 个可能的输入进行比较。

于 2013-07-21T22:51:04.943 回答