Rumah >pembangunan bahagian belakang >C++ >Mengapa 'berganda panjang' Kadang-kadang Menduduki 12 Bait pada Windows XP?

Mengapa 'berganda panjang' Kadang-kadang Menduduki 12 Bait pada Windows XP?

DDD
DDDasal
2024-11-11 00:33:02294semak imbas

Why Does

Enigma Long Double vs. Double

Dalam bidang pengaturcaraan, jenis data memainkan peranan penting, mempengaruhi ketepatan dan saiz daripada nilai. Di tengah-tengah susunan jenis data berdiri dua kali ganda dan dua kali ganda, selalunya diselubungi kekeliruan kerana saiznya yang berbeza-beza bergantung pada sistem.

Pada platform Windows XP 32-bit, seperti yang anda temui, jenis data berganda panjang menduduki 12 bait, manakala double ialah 8 bait. Perbezaan ini daripada saiz 8 bait yang biasa dinyatakan untuk berganda panjang telah menyebabkan ramai pengaturcara menggaru kepala mereka.

Jawapannya terletak pada sifat misteri bagi jenis data berganda panjang. Menurut Wikipedia, pada seni bina x86, yang termasuk Windows XP, kebanyakan penyusun melaksanakan berganda panjang sebagai jenis ketepatan lanjutan 80-bit yang disokong oleh perkakasan. Walau bagaimanapun, peliknya, ketepatan lanjutan ini kadangkala disimpan dalam 12 atau 16 bait untuk penjajaran struktur data yang optimum.

Selain itu, sesetengah penyusun boleh secara pilihan melaksanakan penggandaan panjang sebagai format ketepatan empat kali ganda 128-bit, yang bukan asli disokong oleh perkakasan dan mesti dilaksanakan dalam perisian. Ketepatan lanjutan ini sememangnya membenarkan penggandaan panjang untuk menyimpan julat nilai yang lebih luas daripada dua kali ganda.

Oleh itu, saiz dan ketepatan gandaan panjang tidak tetap secara universal dan boleh berbeza-beza bergantung pada pengkompil dan sistem pengendalian. Adalah penting untuk merujuk dokumentasi pengkompil khusus yang digunakan untuk menentukan ciri tepat jenis data berganda panjang.

Atas ialah kandungan terperinci Mengapa 'berganda panjang' Kadang-kadang Menduduki 12 Bait pada Windows XP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn