если вы храните 1234 в целом числе (4 байта), для хранения 1234 требуется всего два байта, поскольку 1234 меньше 65535, поэтому оставшиеся два байта заполняются 0. Выводится первый байт -46, потому что разыменовывается с помощью знака со знакомуказатель, таким образом, он печатает значение со знаком данных, доступных в младшем значащем байте в двоичном формате 1234.
Двоичный код 1234 в 4 байтах будет выглядеть как
0000 0000, 0000 0000, 0000 0100, 1101 0010
(byte 3) (byte 2) (byte 1) (byte 0)
для байта 0, бит знака равенустанавливается, так что берется дополнение до двух, и ставится отрицательный знак, который является ничем иным, как -46
десятичное значение байта 1 равно 4
байт 2, а байт 3 остается неиспользованным для хранения 1234, поэтомупечатает 0.