Nombor titik terapung disusun mengikut piawaian IEEE 754. Dalam ketepatan tunggal, format terdiri daripada 1 bit untuk tanda, 8 bit untuk eksponen, dan 23 bit untuk pecahan. Eksponen dipincang oleh -127, jadi 0 mewakili 2^-126, dan 1 mewakili 2^-125.
"konvensyen bit terkemuka" mengandaikan bahawa setiap nombor kecuali 0.0 bermula dengan 1 dalam binari. Ini mengelakkan pembaziran sedikit ketepatan untuk digit utama. Walau bagaimanapun, ia mencipta pengecualian untuk 0.0, yang mempunyai kedua-dua eksponen dan bit pecahan bersamaan dengan 0.
Akibatnya, nombor bukan sifar terkecil yang boleh diwakili ialah 1.0 × 2^-126. Untuk mewakili nombor yang lebih kecil, jurutera memperkenalkan nombor subnormal, yang mempunyai bit pendahuluan 0 dan eksponen tetap -126.
Nombor subnormal terbesar ialah 0.FFFFFE × 2^-126, yang sangat hampir kepada nombor bukan subnormal terkecil. Nombor subnormal bukan sifar terkecil ialah 0.000002 × 2^-126, yang lebih hampir kepada 0.0.
Nombor subnormal ialah pertukaran antara ketepatan dan panjang perwakilan. Contohnya, subnormal bukan sifar terkecil mempunyai ketepatan hanya 1 bit, jadi membahagikannya dengan 2 menghasilkan 0.0 tepat.
Dalam visualisasi, nombor subnormal menggandakan panjang julat eksponen 0 dan membahagikan separuh bilangan mata dalam julat itu berbanding dengan sistem tanpa subnormal. Ini mengakibatkan beberapa jurang dalam ruang nombor yang boleh diwakili.
Dalam C, jenis data apungan mewakili nombor titik terapung IEEE 754 ketepatan tunggal. Nombor subnormal boleh dikenal pasti menggunakan fungsi isnormal(), yang mengembalikan palsu untuk nombor subnormal dan benar untuk nombor normal.
Atas ialah kandungan terperinci Mengapa Kita Mempunyai Nombor Titik Terapung Subnormal?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!