相关疑难解决方法(0)

2454
推荐指数
25
解决办法
111万
查看次数

如何处理个别位?

可能重复:
解释用于设置,清除和测试单个位的算法

我有一个unsigned char.我希望将位2到4(从最低有效位计为0)复制到另一位unsigned char作为前三位.例如,在

abcdefgh // a,b,c,d,e,f,g,h are 0 or 1
Run Code Online (Sandbox Code Playgroud)

00000def
Run Code Online (Sandbox Code Playgroud)

我试过了

unsigned char input, output;
output = (input << 3) >> 5;
Run Code Online (Sandbox Code Playgroud)

这不起作用,但是

output = (input << 3)
output >>= 5;
Run Code Online (Sandbox Code Playgroud)

确实有效.

C中有没有办法在一行中完成这个任务?

c bit-manipulation

2
推荐指数
1
解决办法
314
查看次数

标签 统计

bit-manipulation ×2

c ×2

bitwise-operators ×1

c++ ×1