Похоже, вы только что случайно обнаружили, как процессоры хранят целочисленные значения.Есть две конкурирующие школы мысли, которые называются endian , с прямым и прямым порядком байтов, оба найдены в дикой природе.
Если вы хотите, чтобы они были в байтовом порядке,Целочисленный тип будет проблематичным, и его следует избегать.Просто используйте байтовый массив.
Существуют функции преобразования, которые могут переходить из одной порядковой формы в другую, хотя перед преобразованием нужно знать, какой тип использует ваша архитектура.
Так что, если вы 'читая двоичное значение, вы должны знать, в какой форме он находится, чтобы правильно импортировать его в собственный тип int
.Как правило, при написании двоичных файлов рекомендуется выбирать согласованную форму порядка байтов, чтобы не догадываться, где схема «сетевой порядок байтов», используемая в подавляющем большинстве интернет-протоколов, является хорошим значением по умолчанию.Затем вы можете использовать такие функции, как htonl
и ntohl
для преобразования туда и обратно при необходимости.