C语言从一个数取数怎么用表达式写出?高低位又是什么?

写一个表达式,将字长为32位的整数x的第23位~第8位取出,作为新整数的低16位,新整数的高16位为0。

int x 0x12345678;
x = (x >> 8) % 65536;