例如,我有一个uint8_t
,可以是任何值,我只想把所有的位从最低有效位翻转到最高有效位的最后1位值?我该如何以最有效的方式做到这一点?,有没有一种解决方案可以避免使用循环?
以下是一些 case :
左侧是原始位,右侧是翻转后的位.
-
00011
->;00000010
00000010
-
00000000
->;00000000
-
11111111
->;00000000
-
111
->;00001000
1100001000
-
01000000
->;00111111
[EDIT]
类型也可能大于uint8_t
,可能是uint32_t
、uint64_t
和__uint128_t
.我只使用uint8_t
,因为它是示例中最容易显示的尺寸.