标签: c bit-manipulation
我的数字在1-8范围内。
我想将其转换为
0b00000001 // 1 0b00000011 // 2 0b00000111 // 3 0b00001111 // 4 0b00011111 // 5 0b00111111 // 6 0b01111111 // 7 0b11111111 // 8
可以在没有开关或for循环的情况下完成吗? 理想情况下,使用简单的公式。
答案 0 :(得分:8)
您正在寻找的是
(1 << v) - 1