我正在寻找一种干净的方法来列出(8 位)整数,其二进制表示与另一个整数不同,直到旋转和反射。

例如,列表可能会以
0
1
(2=10b 被跳过,因为您可以将位旋转为 1,因此所有 2 的幂都被跳过。除 0 外的每个数字都是奇数)
3=11b
5=101b
7=111b
9=1001b
11=1011b(所以 13=1101b 将被跳过,因为 11010000b 是 1101b 的反射,然后可以向右旋转 4 次)
.
.
.

理想情况下,如何将其推广到具有不同位数(16、32 或仅 n)和除 2 之外的其他基数的数字。

最佳答案

由于@John Smith 认为我的评论是一个很好的答案,因此这是一个答案。

The answers here 可能很有启发性。

关于language-agnostic - 计算非对称字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4116507/

10-13 05:14