загадка длинного двойного против двойного
В сфере программирования типы данных играют ключевую роль, влияя на точность и размер значений. Среди массива типов данных стоит длинные двойные и двойные, часто окутанные путаницей из-за их различных размеров в зависимости от системы.
на 32-разрядной платформе Windows XP, как вы обнаружили, длинный тип двойных данных занимает 12 байтов, в то время как двойные байты-8 байтов. Эта дивергенция от общеизвестного размера 8 байтов для длинного двойного заставила многих программистов поцарапать головы.
ответ лежит в загадочном характере длинного типа двойных данных. Согласно Википедии, на архитектуре X86, которая включает Windows XP, большинство компиляторов реализуют Long Double в качестве 80-битного расширенного типа точности, поддерживаемого аппаратным обеспечением. Тем не менее, любопытно, что эта расширенная точность иногда сохраняется в 12 или 16 байтах для оптимального выравнивания структуры данных.
Кроме того, некоторые компиляторы могут при желании реализовать Long Double в виде 128-разрядного четырехкратного формата точности, который не поддерживается оборудованием и должно быть реализовано в программном обеспечении. Эта расширенная точность действительно позволит длинному двойному хранить более широкий диапазон значений, чем двойной.
Таким образом, размер и точность длинного двойного не являются универсально фиксированными и могут варьироваться в зависимости от компилятора и операционной системы. Важно проконсультироваться с документацией конкретного компилятора, используемой для определения точных характеристик длинного двойного типа данных.
]Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3