не делали бит-математику за минуту, так что ... для удовольствия:
[дополнительные скобки, чтобы показать порядок операций]
((b[0] & 0x7f) << 24) | (b[1] << 16) | (b[2] << 8) | b[3]
(b[0] & 0x7f) << 24 = 11 0000 0000 0000 0000 0000 0000
b[1] << 16 = . . . . . . . . . . 10 0000 0000 0000 0000
b[2] << 8 = . . . . . . . . . . . . . . . 101 0000 0000
b[3] = . . . . . . . . . . . . . . . 0111
теперь ИЛИ все вместе, и вы получите
0011 0000 0010 0000 0101 0000 0111 = 50,464,007