Может кто-нибудь объяснить, что сдвиг битов и оператор ИЛИ делает в этом C коде? Спасибо!
Редактировать: Спасибо за ответы. Я воспользовался советом jabberwocky и обновил вывод
int size;
unsigned int buffer4 ,buffer3,buffer2,buffer1;
buffer4 = 132;
buffer3 = 50;
buffer2 = 8;
buffer1 =0;
printf("%08x %08x %08x %08x\n", buffer4, buffer3, buffer2, buffer1); //Hex:
printf("%08x %08x %08x %08x\n", buffer4, buffer3<<8, buffer2<<16, buffer1<<24); //Hex Shifted:
printf("%08d %08d %08d %08d\n", buffer4, buffer3, buffer2, buffer1); //Integer
printf("%08d %08d %08d %08d\n", buffer4, buffer3<<8, buffer2<<16, buffer1<<24); //Integer Shifted: :
size = buffer4 | (buffer3 <<8) | (buffer2<<16) | (buffer1 <<24);
printf("%08x\n",size);
printf("%d\n",size);
:
00000084 00000032 00000008 00000000
00000084 00003200 00080000 00000000
00000132 00000050 00000008 00000000
00000132 00012800 00524288 00000000
00083284
537220
Все побитовые операции имеют смысл для меня, но откуда взялся 537220? Я должен пропустить конверсию.