У меня есть короткий int, который составляет 2 байта, но я хочу вывести в файл только левый байт. Как мне это сделать? Я использую бинарные функции open(), read(), write() и т.д.
Я также хотел бы сдвинуть правый байт влево 8 раз, чтобы правый байт занимал левый, а правый был очищен до всех 0-х.
Я прошу прощения за то, что не показываю, что я уже пробовал - я новичок в C и не могу найти ничего о том, как это сделать.
sizeof (short int)
байт. Это значение не обязательно равно 2. Существуют системы, в которых sizeof (short int) == 1. @JoachimPileborg: глупо поощрять эксперименты со сдвигом отрицательных целых чисел. Сдвиг влево отрицательных значений является неопределенным поведением, а сдвиг вправо может привести к представлениям ловушки или исключительным условиям, которые согласно 6.2.6.1p5 и 6.5p5 также могут привести к неопределенному поведению. - person autistic   schedule 16.02.2013