Rumah >pembangunan bahagian belakang >C++ >Mengapa `berganda panjang` Kadangkala Menduduki 12 Bait?
berganda panjang vs berganda: Teka-teki Ketepatan
Perdebatan mengenai saiz dan ketepatan jenis data berganda dan berganda panjang boleh mengelirukan , terutamanya pada sistem pengendalian yang berbeza. Walaupun sumber biasa sering menyatakan bahawa long double biasanya 8 bait, sesetengah pengaturcara telah menemui saiz 12 bait pada sistem Windows 32-bit.
Jadi, mengapa long double mempunyai saiz 12 bait dalam beberapa kes? Jawapannya terletak pada kerumitan pelaksanaan pengkompil. Menurut Wikipedia, penyusun pada seni bina x86 sering melaksanakan berganda panjang sebagai jenis ketepatan lanjutan 80-bit yang disokong oleh perkakasan. Walau bagaimanapun, untuk mengekalkan integriti struktur data, mereka boleh memilih untuk menyimpannya dalam bekas antara 12 hingga 16 bait.
Selain itu, pengkompil juga boleh memilih untuk menggunakan dua kali ganda untuk format ketepatan empat kali ganda 128-bit. Dalam keadaan ini, long double memang mengembangkan julat nilai yang mungkin melebihi nilai double. Walau bagaimanapun, adalah penting untuk menyedari bahawa pelaksanaan ketepatan lanjutan ini bukan piawaian sejagat dan bergantung sepenuhnya pada konfigurasi pengkompil.
Ringkasnya, saiz dan ketepatan gandaan panjang boleh berbeza-beza berdasarkan pengkompil dan sistem seni bina. Ia tidak dijamin memberikan julat nilai yang lebih luas daripada dua kali ganda dalam semua kes. Pengaturcara harus merujuk kepada dokumentasi pengkompil mereka untuk menentukan butiran pelaksanaan khusus dan membuat keputusan termaklum apabila berurusan dengan pengiraan sensitif ketepatan.
Atas ialah kandungan terperinci Mengapa `berganda panjang` Kadangkala Menduduki 12 Bait?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!