将数字转换为字节,并设置N位

时间:2015-04-10 08:46:42

标签: c bit-manipulation

我的数字在1-8范围内。

我想将其转换为

0b00000001  // 1
0b00000011  // 2
0b00000111  // 3
0b00001111  // 4
0b00011111  // 5
0b00111111  // 6
0b01111111  // 7
0b11111111  // 8

可以在没有开关或for循环的情况下完成吗? 理想情况下,使用简单的公式。

1 个答案:

答案 0 :(得分:8)

您正在寻找的是

(1 << v) - 1