我有兴趣编写一个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来做到这一点,但我不知道我在这里如何使用减法.有任何想法吗?
所以我有一点顺序:
1010
1是MSB.
如果奇数位为0,我的函数需要返回0的整数,如果是1则返回1.
我不能使用任何for循环或任何性质的东西来看我是否需要返回0或1.有没有人有任何建议如何去做.
我正在考虑使用not操作,但我可以弄清楚如何使用它.
到目前为止,我正在使用1010 ... 10的序列,然后将它连接起来.这样做会让我得到1010.现在我需要知道我是否返回1或0.