assigment with OR statement : So i came across this code when i was reading source in git hub.

 

    addr2int = ( (uint32_t)paddr[2] ) | ( (uint32_t)paddr[3] << 8 ) | ( (uint32_t)paddr[4] << 16 ) | ( (uint32_t)paddr[5] << 24 )

Can some one explain to me what happens here, i tried to google it but i don't know the keywords to search this because i keep getting wrong results.

As far as i can tell this is an assignment but i don't understand why their are or operators and if this is an multiple assignment?