相关疑难解决方法(0)

c得到整数的第n个字节

我知道你可以通过使用获得第一个字节

int x = number & ((1<<8)-1);
Run Code Online (Sandbox Code Playgroud)

要么

int x = number & 0xFF;
Run Code Online (Sandbox Code Playgroud)

但我不知道如何获得整数的第n个字节.例如,1234是00000000 00000000 00000100 11010010作为32位整数如何获得所有这些字节?第一个是210,第二个是4,最后两个是0.

c byte bit-shift shift

33
推荐指数
2
解决办法
6万
查看次数

按位运算符从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
查看次数

标签 统计

c ×2

algorithm ×1

bit-manipulation ×1

bit-shift ×1

byte ×1

c++ ×1

shift ×1