Как работает иннициаизация переменной и ByteOrder в golang?
Доброго времени суток, хотелось бы получить объяснение такому примеру: var num int32 = 0x00000020
Моя машина работает на litle-endian, и при таком варианте записи, число num1 = 5.........., но на выходе я получаю 32, и когда смотрю это число в памяти, то вижу 0х20000000.
Так вот, почему при такой записи числа, оно реверсит данные? Такое ощущение что при такой инициализации переменной, данные принимаются в big-endian, и потом переводятся в машинный порядок.
У меня нет возможности тестировать код на big-endian процессоре, но поддержка такого процессора нужна.
Сразу второй вопрос по теме, как всегда читая из потока, и потом при записи в поток, записывать числа в порядке big-endian не зависимо от порядка процессора, т.е. если процессор работает в big то писать как есть, а если в litle то конвертить?
Вы совсем не поняли суть вопроса) Как узнать разрядность машины я знаю, а вот почему когда инициализирую переменную через указание её байтов, оно реверсит переменную не знаю
TheMrViper: Это не особенность конкретного языка. В Windows к примеру всегда int32, short, long в памяти хранятся в обратном порядке. А язык просто компилирует все в соответствии с целевой платформой.