【发布时间】:2013-09-27 02:03:26
【问题描述】:
我需要交换每两个相邻的位作为通用操作,这将对给定的每个变量类型都这样做。
我想到了每个字节所需的掩码和操作:
(var & 0x55) << 1 | (var & 0xAA) >> 1
但是我如何使它适用于假设一个整数?
我是否需要使用上述掩码创建一个sizeof(int)unsigned chars 数组并以这种方式应用操作?
【问题讨论】:
-
所以 01101100 会变成 10011100?
-
是的,正是@LoganMurphy
-
@LoganMurphy“每两个相邻位交换一次”,我认为是的。
标签: c bit-manipulation bit generic-programming