unsigned short i = (pointer[x] << 8) + pointer[x+1]
Предполагая, что вы хотите, чтобы x был старшими битами, а x + 1 - младшими битами.На самом деле, вы также должны помнить о порядке байтов.
РЕДАКТИРОВАТЬ:
Это также может работать:
*(unsigned short *) pointer[x]
Однако это будет зависеть от порядка байтов, например, в младшем порядке байтов первый байт будет младшим8 бит, в то время как x + 1 будет старшими байтами.