C程序设置k个低位位

时间:2011-06-21 00:50:44

标签: c bit-manipulation bit

对于32位整数,如何在C中设置k个低位?

4 个答案:

答案 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);
}

这是你的意思吗?