Скажите, что я сравниваю int и короткий int. Согласно второму изданию «Язык программирования C», написанный на стр. 173, короткий int будет преобразован в int, который составляет 4 байта вместо коротких целых 2 байта в моей системе.C - Как выполняется арифметическое преобразование на уровне памяти?
Мой вопрос: Как это сделать на уровне памяти? Будет ли короткое целое число добавлено к нему 2 байта или данные будут скопированы в совершенно другую ячейку памяти?
Я только что отредактировал из сравнения double и int в short и int. Извините за неудобства.
поплавков кодируются совершенно иначе, чем целые. Даже если вы переводили между целым типом и типом с плавающей точкой одного и того же размера, результирующая с плавающей запятой будет состоять из разных бит. Это не простая побитовая операция. – Kevin
Вы не должны думать об этом с точки зрения представления, а с точки зрения стоимости. Если значение 'int' вписывается в допустимый диапазон типа' double', все в порядке. Если это не так, у вас проблемы. –
его реализация определена. некоторые машины делают load-load-convert-compare, load-convert-compare, load-convert-save-compare, some do load-load-compare .... load double> load int> int double> double-double compair может быть наиболее часто используется в настоящее время, поскольку FPU являются в основном загрузкой и регистрацией регистров. – user3528438