Saya hanya tidak dapat memahami angka fixed point dan floating point karena definisi yang sulit dibaca tentang mereka di seluruh Google. Tetapi tidak ada yang telah saya baca memberikan penjelasan yang cukup sederhana tentang apa itu sebenarnya. Bisakah saya mendapatkan definisi yang jelas dengan contoh?
numbers
computer-science
representation
pengguna942451
sumber
sumber
Jawaban:
Bilangan titik tetap memiliki jumlah bit (atau digit) tertentu yang disediakan untuk bagian integer (bagian di sebelah kiri koma desimal) dan sejumlah bit tertentu yang disediakan untuk bagian pecahan (bagian di sebelah kanan desimal titik). Tidak peduli seberapa besar atau kecil nomor Anda, itu akan selalu menggunakan jumlah bit yang sama untuk setiap bagian. Misalnya, jika format titik tetap Anda dalam desimal
IIIII.FFFFF
maka angka terbesar yang dapat Anda wakili adalah99999.99999
dan angka bukan nol terkecil adalah00000.00001
. Setiap bit kode yang memproses angka-angka tersebut harus memiliki pengetahuan bawaan tentang di mana titik desimalnya.Bilangan floating point tidak mencadangkan sejumlah bit tertentu untuk bagian integer atau bagian pecahan. Sebaliknya ia menyimpan sejumlah bit untuk nomor tersebut (disebut mantissa atau signifikan ) dan sejumlah bit untuk mengatakan di mana dalam bilangan itu tempat desimal berada (disebut eksponen ). Jadi bilangan floating point yang mengambil 10 digit dengan 2 digit yang disediakan untuk eksponen mungkin mewakili nilai terbesar
9.9999999e+50
dan nilai bukan nol terkecil0.0000001e-49
.sumber
-9.9999999e+50
.00000.00001
? Saya mengharapkan untuk melihat00000.00000
sebagai gantinya. Juga, apakah Anda memiliki referensi yang menjelaskan lebih detail tentang bilangan fixed-point?Bilangan tetap berarti ada sejumlah digit tetap setelah koma desimal. Bilangan floating point memungkinkan jumlah digit yang bervariasi setelah koma desimal.
Misalnya, jika Anda memiliki cara menyimpan angka yang membutuhkan tepat empat digit setelah koma, maka itu adalah titik tetap. Tanpa batasan itu, itu adalah floating point.
Seringkali, ketika titik tetap digunakan, pemrogram sebenarnya menggunakan bilangan bulat dan kemudian membuat asumsi bahwa beberapa digit berada di luar koma desimal. Misalnya, saya mungkin ingin menjaga dua digit presisi, jadi nilai 100 berarti sebenarnya 1,00, 101 berarti 1,01, 12345 berarti 123,45, dll.
Bilangan floating point lebih bersifat umum karena dapat mewakili bilangan yang sangat kecil atau sangat besar dengan cara yang sama, tetapi ada hukuman kecil karena harus memiliki penyimpanan ekstra untuk tempat desimal berada.
sumber
Dari pemahaman saya, aritmatika titik tetap dilakukan dengan menggunakan bilangan bulat. di mana bagian desimal disimpan dalam jumlah bit tetap, atau jumlahnya dikalikan dengan berapa digit ketepatan desimal yang dibutuhkan.
Misalnya, jika angka
12.34
perlu disimpan dan kita hanya membutuhkan dua digit ketepatan setelah koma, angka tersebut dikalikan dengan100
untuk mendapatkan1234
. Saat melakukan matematika pada angka ini, kami akan menggunakan kumpulan aturan ini. Menambahkan5620
atau56.20
ke nomor ini akan menghasilkan6854
data atau68.54
.Jika kita ingin menghitung bagian desimal dari bilangan fixed-point, kita menggunakan operand modulo (%).
12.34 (kodesemu):
Angka floating point adalah cerita yang sama sekali berbeda dalam pemrograman. Standar saat ini untuk bilangan floating point menggunakan sesuatu seperti 23 bit untuk data bilangan tersebut, 8 bit untuk eksponen, dan 1 tetapi untuk tanda. Lihat tautan Wikipedia ini untuk informasi lebih lanjut tentang ini.
sumber
Istilah 'titik tetap' mengacu pada cara yang sesuai di mana bilangan direpresentasikan, dengan jumlah digit tetap setelah, dan kadang-kadang sebelum, titik desimal. Dengan representasi titik mengambang, penempatan titik desimal dapat 'mengambang' relatif terhadap digit angka yang signifikan. Misalnya, representasi titik tetap dengan konvensi penempatan titik desimal yang seragam dapat mewakili angka 123.45, 1234.56, 12345.67, dll., Sedangkan representasi floating-point juga dapat mewakili 1.234567, 123456.7, 0.00001234567, 1234567000000000, dll.
sumber
Ambil nomor 123.456789
Titik mengambang memungkinkan Anda mewakili sebagian besar setiap angka dengan presisi tinggi. Memperbaiki kurang tepat, tetapi lebih sederhana untuk komputer ..
sumber