У меня есть следующий фрагмент кодаLittle Endian и большое назначение младших
int i = 321;
char ch = i;
printf("%d", ch);
i
в двоичном виде 00000000 00000000 00000001 01000001
и выход 65
. Из приведенного выше кода я понимаю, что с char
занимает всего 1 байт памяти, первые 3 байта i
отбрасываются, а последний байт присваивается ch
. Отсюда и результат.
Моя машина малоэтажная. Является ли результат в ch
основанной на контенте базовой машины? Просьба уточнить.
Если вы используете арифметику указателя, библиотека времени c должна абстрагироваться от утверждения. Сужение int до char эффективно является модульной операцией, и iirc определяется таким образом в стандарте (лучше искать, хотя ...) – collapsar
Итак, прямой ответ: Нет, этот результат hasnüt ничего не делает с энтиансой. – deviantfan
Если по умолчанию 'char' является типом подписанных данных в вашей среде (что более распространено, чем нет), то поведение, связанное с назначением значения вне диапазона переменной' char', равно * undefined *. –