小编Dav*_*vid的帖子

按位运算符从32位获取字节

我有兴趣编写一个getMyByteChunkFunction接受两个参数的函数- 一个32位整数和一个字节偏移量(0,1,2或3),然后从32位整数中返回相应的字节.例如,给定此整数:

            (3)         (2)      (1)      (0)   ---byte numbers
int word = 10101010 00001001 11001010 00000101
Run Code Online (Sandbox Code Playgroud)

函数调用getMeByteChunkFunction(word, 2)返回00001001.

但是,我可以使用的按位运算符有限.我只允许使用>>,<<以及只有一个减法.我知道如何使用AND和XOR来做到这一点,但我不知道我在这里如何使用减法.有任何想法吗?

c c++ algorithm bit-manipulation

12
推荐指数
2
解决办法
7891
查看次数

在没有条件语句的情况下访问第n位

所以我有一点顺序:

1010

1是MSB.

如果奇数位为0,我的函数需要返回0的整数,如果是1则返回1.

我不能使用任何for循环或任何性质的东西来看我是否需要返回0或1.有没有人有任何建议如何去做.

我正在考虑使用not操作,但我可以弄清楚如何使用它.

到目前为止,我正在使用1010 ... 10的序列,然后将它连接起来.这样做会让我得到1010.现在我需要知道我是否返回1或0.

c bitwise-operators truthtable

3
推荐指数
1
解决办法
5297
查看次数