字节shifitng int为4个字节后,如何切换回int(C)

Jac*_*son 2 c

所以我将一个整数字节移位到4个字节的数据中.

img[4] = (imagewidth >> 24) & 0xFF;
img[5] = (imagewidth >> 16) & 0xFF;
img[6] = (imagewidth >> 8) & 0xFF;
img[7] = imagewidth & 0xFF;

img[8] = (imageheight >> 24) & 0xFF;
img[9] = (imageheight >> 16) & 0xFF;
img[10] = (imageheight >> 8) & 0xFF;
img[11] = imageheight & 0xFF;
Run Code Online (Sandbox Code Playgroud)

现在我将如何将其转换回整数.所以img[8]- img[11]回到单个intimg[4]- img[7]回到单个int

ken*_*ytm 10

imagewidth = img[4] << 24 | img[5] << 16 | img[6] << 8 | img[7];
imageheight = img[8] << 24 | img[9] << 16 | img[10] << 8 | img[11];
Run Code Online (Sandbox Code Playgroud)

  • @RBerteig:我认为移位中的右操作数对结果类型没有影响,所以这没有用.对于负值,左移只是未定义的行为. (2认同)