5 Expressions [expr]
[...]
9 Many binary operators that expect operands of arithmetic or enumera-
tion type cause conversions and yield result types in a similar way.
The purpose is to yield a common type, which is also the type of the
result. This pattern is called the usual arithmetic conversions,
which are defined as follows:
[...]
4.5 Integral promotions [conv.prom]
1 An rvalue of type char, signed char, unsigned char, short int, or
unsigned short int can be converted to an rvalue of type int if int
can represent all the values of the source type; otherwise, the source
rvalue can be converted to an rvalue of type unsigned int.
Короче говоря, в этом выражении сначала считается x[1] << 8. Поскольку 8 имеет тип int, то и выражение должно иметь тип int. Далее результат int прибавляется к x[0], в итоге тоже должен получиться int.