对于32位整数,如何在C中设置k个低位?
答案 0 :(得分:17)
假设您要设置 k 32位整数 x 的最低位,我相信这会有效:
if( k > 0 ) {
x |= (0xffffffffu >> (32-k))
}
答案 1 :(得分:10)
要在n
中设置k
个最低有效位,您可以使用算术:
k |= (1 << n) - 1;
(前提是n
小于或等于你的int大小。)
答案 2 :(得分:1)
int bitmask = 1;
for (ix = 0; ix < k; ++ix)
{
C = C | bitmask;
bitmask <<= 1;
}
答案 3 :(得分:1)
的内容
设置k低位:
while (k) {
k--;
num |= (1<<k);
}
这是你的意思吗?