Nombor titik terapung: apa itu? Hanya menerangkan dengan contoh
Dalam petua praktikal ini, kami menunjukkan kepada anda apa nombor titik terapung dan bagaimana ia berbeza dari nombor titik tetap.
Nombor titik terapung: apa itu?
Dalam sains komputer, nombor terapung sering digunakan untuk mengukur peranti yang sepatutnya berfungsi dengan ketepatan tertentu.
- Nombor titik terapung (atau "nombor titik terapung") adalah perwakilan nombor menggunakan notasi eksponen. Dalam kes yang luar biasa, ini hanya berfungsi lebih kurang. Anda juga boleh mewakili nombor 1230000 dengan nombor 1.23 ⋅ 10 Ũ.
- The 1.23 dipanggil "Mantissa". 10 adalah "asas" dan 6 adalah "eksponen". Secara kebetulan, tanda juga boleh ditambahkan ke mantissa. Walau bagaimanapun, anda juga boleh menggunakan keseluruhannya untuk sistem dwi. Anda juga boleh mewakili nombor 10101100 dengan nombor 1.0101100 ⋅ 27. Komputer hanya menyimpan tanda, mantissa dan eksponen.
- Komputer biasanya memindahkan koma bolak-balik sehingga hanya ada 1 di hadapan koma. Kemudian PC hanya perlu menyimpan tempat perpuluhan mantissa dan eksponen.
- Supaya eksponen boleh disimpan sebagai nombor positif, nombor tetap, bias yang dipanggil, ditambah. Eksponen terkecil dari tempat sebelum titik perpuluhan (- bias) disimpan sebagai 0.
- Berbeza dengan nombor tetap titik, koma tidak berada pada titik tetap dalam nombor terapung.
Separuh, Terap & Double - Pengekodan biasa nombor titik terapung
Anda sudah pasti tersandung tiga istilah ini, terutamanya apabila pengaturcaraan dengan Arduino. Ini adalah representasi standard.
- Jenis data "separuh" adalah nombor 16-bit. Bit paling kiri bertanggungjawab untuk tanda itu. Eksponen mempunyai 5 bit dan mantissa 10. Bias yang digunakan ialah 15. Oleh kerana bit pertama mantissa adalah (hampir) selalu 1, ini tidak disimpan.
- Jenis data "float" (atau "tunggal") adalah nombor 32-bit. Di sini juga sedikit digunakan untuk tanda itu. Walau bagaimanapun, eksponen mempunyai 8 bit (bias = 127) dan mantissa 23.
- Jenis data "double" juga menggunakan sedikit untuk tanda. Walau bagaimanapun, di sini, eksponen mempunyai 11 bit (bias = 1023) dan mantissa walaupun 52 bit. Keseluruhannya, ini adalah 64 bit, iaitu 8 bait.
- Sebagai tambahan kepada tiga jenis data biasa ini, terdapat banyak lagi. Walau bagaimanapun, kebanyakannya tidak digunakan kerana ketepatan separuh, terapung dan berganda sudah cukup baik.
Menukar nombor perpuluhan ke nombor terapung - bagaimana ia berfungsi
Akhir sekali, kami ingin menunjukkan kepada anda bagaimana anda boleh menukar nombor perpuluhan biasa ke nombor titik terapung.
- Dalam contoh ini kita menggunakan nombor perpuluhan 18.4. Nombor sebelum titik perpuluhan mula-mula dipindahkan ke sistem dwi. Akibatnya, anda harus mendapatkan (10010) ₂.
- Kemudian anda perlu menukar 0.4. Pertama kalikan 0.4 oleh 2. Anda mendapat 0.8 sebagai hasilnya. Buat nota nombor sebelum koma. Dalam kes ini ia adalah 0. Kemudian kalikan 0.8 oleh 2. Kali ini anda mendapat 1.6 sebagai hasilnya. Buat catatan 1 dan teruskan kiraan dengan 0.6. Selepas beberapa ketika, anda akan melihat corak itu berulang (dalam contoh ini). Akhirnya, tulis semua nombor dari atas ke bawah: 011001100110 ...
- Kemudian tambahkan nombor bersama-sama: Juga tambah (⋅ 2⁰) supaya anda mendapat 10010.01100110 ... ⋅ 2⁰. Kemudian gerakkan koma sehingga hanya ada 1 di depan titik perpuluhan, dan juga menukar kuasa dengan sewajarnya. Akibatnya anda harus mendapatkan 1.001001100110 ... ⋅ 2⁴, kerana anda telah memindahkan titik perpuluhan 4 tempat ke kiri. Langkah ini juga dipanggil "menormalkan".
- Dalam contoh ini kita menggunakan jenis data "float". Jadi tambahkan nilai bias yang sesuai kepada eksponen anda. Anda juga harus menukar hasil perhitungan 4 + 127 = 131 ke dalam bilangan biner. Nombor 131 adalah nombor 10000011 dalam sistem dwi.
- Sekarang anda boleh menulis nombor titik terapung yang telah siap. Pertama tulis sedikit untuk tanda itu. Oleh kerana ia adalah nombor positif, bit pertama adalah 0. Kemudian anda perlu menulis 131. Seluruh perkara ini sangat sesuai dalam kes ini, kerana nombor ini memerlukan 8 bit dan 8 bit tersedia untuk apungan. Akhirnya, anda perlu menulis 23 bit pertama mantissa, kerana mantissa mempunyai 23 bit yang tersedia untuk mengapung.
- Oleh itu, nombor titik terapung siap anda harus nombor 01000001100100110011001100110011. Sedikit lebih jelas ialah nombor 0 | 10000011 | 00100110011001100110011.
Tukar nombor titik terapung ke nombor perpuluhan - Inilah caranya
Akhir sekali, kami ingin menunjukkan kepada anda bagaimana anda boleh menukar nombor terapung menjadi nombor perpuluhan sekali lagi. Untuk ini kami mengambil nombor 1000001100100110011001100110011.
- Pertama masukkan nombor (depan) dengan nol sehingga anda mendapat nombor 16, 32 atau 64 bit. Dalam kes ini ia adalah 01000001100100110011001100110011.
- Nombor pertama bermaksud tanda. Jadi nombor kami adalah positif.
- Kemudian tulis seterusnya (dalam kes ini) 8 digit dan tolak bias. (10000011) ₂ = 131 → 131 - 127 = 4 → Jadi ada "⋅ 2⁴" di bahagian belakang.
- Sekarang tulis "1, " dan kemudian semua baki nombor, serta "⋅ 2⁴": 1.00100110011001100110011 ⋅ 2 ⋅
- Kemudian gerakkan koma 4 tempat di sebelah kanan supaya anda boleh meninggalkan "⋅ 2⁴": 10010.0110011001100110011
- Seterusnya, tukar 10010 ke integer seperti biasa. Anda mendapat 18.
- Sekarang anda perlu menukar tempat perpuluhan. Nombor pertama selepas koma mempunyai nilai 1: 2¹, angka kedua 1: 2² dan seterusnya. Tambahkan nilai-nilai, dan nombor sebelum koma memberikan nombor 18.3999996185302734375.
Dalam hujung praktikal seterusnya kami akan menunjukkan kepada anda bagaimana anda boleh menukar huruf ASCII ke nombor perduaan.