FormasiPerguruan tinggi dan universitas

Apa angka floating point?

Bentuk representasi bilangan real (atau nyata), di mana mereka disimpan sebagai mantissa dan eksponen, adalah bilangan floating-point (mungkin satu titik, seperti kebiasaan di negara-negara berbahasa Inggris). Meskipun demikian, jumlahnya dilengkapi dengan akurasi relatif tetap dan berbeda-beda. Representasi yang paling sering digunakan disetujui oleh standar IEEE 754. Operasi matematika, di mana bilangan floating-point digunakan, diterapkan pada sistem komputer - perangkat keras dan perangkat lunak.

Titik atau koma

Dalam daftar detil pemisah Desimal, negara-negara berbahasa Inggris dan bahasa Inggris ditunjukkan, di mana, dalam catatan jumlah, bagian pecahan dipisahkan dari keseluruhan bagian oleh titik, dan oleh karena itu terminologi negara-negara ini disebut floating point - "floating point". Di Federasi Rusia, bagian pecahan keseluruhan secara tradisional dipisahkan oleh koma, oleh karena itulah istilah "bilangan floating-point" yang dikenal secara historis menunjukkan gagasan ini. Namun demikian, hari ini baik dalam dokumentasi teknis maupun dalam literatur berbahasa Rusia kedua varian ini cukup dapat diterima.

Istilah "floating-point numbers" berasal dari fakta bahwa representasi posisional dari sebuah bilangan mewakili koma (bilangan desimal biasa atau biner - komputer) yang sesuai dengan jumlah string di manapun. Fitur ini harus didiskusikan secara terpisah. Ini berarti bahwa representasi bilangan floating-point dapat dianggap sebagai implementasi komputer dari entri bilangan eksponensial. Keuntungan menggunakan representasi semacam itu di atas representasi format dengan koma tetap dan bilangan bulat adalah kisaran nilai tumbuh secara substansial, sementara keakuratan relatifnya tetap tidak berubah.

Contoh:

Jika koma dalam nomor itu tetap, maka Anda bisa menuliskannya hanya dalam satu format. Sebagai contoh, enam bit bilangan bulat dalam bilangan dan dua bit pada bagian fraksional diberikan. Hal ini dapat dilakukan hanya dengan cara ini: 123456,78. Format angka floating-point memberikan ruang lingkup penuh untuk ekspresi. Misalnya, delapan bit yang sama diberikan. Varian rekaman bisa jadi selama pemrogram tidak harus membuat lapangan tambahan dua digit, di mana ia akan menuliskan eksponennya, yang biasanya berukuran 10, dari 0 sampai 16, dan jumlahnya akan menjadi sepuluh: 8 + 2.

Beberapa pilihan untuk penulisan yang memungkinkan format angka floating-point: 12345678000000000000; 0.0000012345678; 123,45678; 1,2345678 dan seterusnya. Format ini bahkan memiliki satuan pengukuran kecepatan! Sebaliknya, kecepatan sistem komputer, yang memperbaiki kecepatan komputer melakukan operasi, di mana ada representasi bilangan floating-point. Ini diukur dari segi FLOPS (operasi floating-point per detik, yang diterjemahkan sebagai jumlah operasi per detik dengan angka floating-point). Unit ini merupakan yang utama dalam mengukur kecepatan sistem komputer.

Struktur

Untuk menulis angka dalam format floating-point, perlu dengan cara berikut, mengamati urutan bagian yang dibutuhkan, karena entri ini bersifat eksponensial, di mana bilangan real terwakili sebagai mantissa dan pesanan. Hal ini diperlukan untuk mewakili jumlah yang terlalu besar dan terlalu kecil, akan jauh lebih mudah untuk membacanya. Bagian wajib: nomor rekaman (N), mantissa (M), tanda tatanan (p) dan urutan (n). Dua karakter terakhir membentuk karakteristik nomor tersebut. Oleh karena itu, N = M. N hal . Jadi jumlahnya ditulis dengan koma mengambang. Contohnya akan bervariasi.

1. Perlu menuliskan angka satu juta agar tidak bingung dalam angka nol. 1000000 adalah entri normal, yang aritmatika. Komputer terlihat seperti ini: 1.0 . 10 6 . Artinya, sepuluh di kelas enam - tiga karakter, yang cocok sebanyak enam nol. Dengan demikian, representasi bilangan fixed-point dan floating-point terjadi, dimana Anda bisa langsung mendeteksi perbedaan ejaan.

2. Dan angka yang sulit seperti 1435000000 (satu miliar empat ratus tiga puluh lima ribu) juga bisa ditulis: 1.435 . 10 9 saja. Demikian pula, Anda bisa menulis nomor dengan tanda minus. Di sinilah titik-titik tetap dan bilangan floating-point berbeda satu sama lain.

Tapi ini angka besar, bagaimana menghadapi yang kecil? Ya, terlalu mudah.

3. Misalnya, bagaimana cara menunjuk satu juta? 0.000001 = 1.0 . 10 -6 . Secara signifikan memudahkan penulisan angka, dan bacaannya.

4. Dan yang lebih sulit? Lima ratus empat puluh enam miliar: 0.000000546 = 546 . 10 -9 . Ini. " Rentang representasi bilangan floating-point sangat luas.

Formulir

Bentuk angka bisa normal atau normal. Normal - selalu memperhatikan ketepatan bilangan floating-point. Perlu dicatat bahwa mantissa dalam bentuk ini, tanpa memperhitungkan tanda itu, berada di tengah interval: 0 1, maka 0 ⩽ a <1. Angka tersebut tidak kehilangan keakuratannya dalam bentuk normal. Kerugian dari bentuk angka yang normal adalah bahwa banyak angka dapat ditulis dengan cara yang berbeda, yaitu ambigu. Contoh catatan berbeda dengan nomor yang sama: 0.0001 = 0, 000001 . 10 2 = 0.00001 . 10 1 = 0.0001 . 10 0 = 0.001 . 10 -1 = 0,01 . 10 -2 dan jadi kamu masih bisa banyak. Itulah sebabnya dalam ilmu komputer lain, bentuk catatan yang dinormalisasi digunakan, di mana mantissa bilangan desimal mengambil nilai dari satu (inklusif) dan dengan demikian sampai sepuluh (tidak inklusif), dan dengan cara yang sama mantissa bilangan biner mengambil nilai dari satu (inklusif) menjadi dua (bukan Termasuk).

Oleh karena itu, 1 ⩽ a <10. Ini adalah bilangan floating-point biner , dan bentuk tulisan ini memperbaiki bilangan apapun (kecuali nol) secara unik. Tapi ada juga kelemahan - kemustahilan dalam bentuk ini adalah nol. Oleh karena itu, ilmu komputer menyediakan penggunaan angka 0 karakteristik khusus (bit). Bagian bilangan bulat dari bilangan (angka tertinggi) dari mantissa dalam bilangan biner kecuali nol dalam bentuk normal adalah 1 (unit implisit). Catatan seperti itu digunakan oleh standar IEEE 754. Sistem penomoran, di mana basisnya lebih besar dari dua (sistem terner, kuartener dan sistem lainnya), properti ini belum diperoleh.

Bilangan real

Floating point floating-point numbers biasanya satu-satunya, karena ini bukan satu-satunya, tapi cara yang sangat mudah untuk mewakili bilangan real, seperti kompromi antara berbagai nilai dan presisi. Ini adalah analog dari sebuah catatan eksponensial yang baru saja dijalankan di komputer. Nomor floating-point adalah sekumpulan bit individu yang dipisahkan oleh tanda, perintah (eksponen), dan mantis (mantis). Format IEEE 754 yang paling umum adalah bilangan floating point sebagai sekumpulan bit yang mengkodekan satu bagian mantissa, bagian lainnya adalah sebuah kekuatan, dan satu angka menunjukkan tanda nomor: nol adalah jika positif, satu adalah jika jumlahnya negatif. Seluruh pesanan ditulis sebagai bilangan bulat (kode dengan pergeseran), dan mantissa dalam bentuk normal, bagian pecahannya ada dalam sistem biner.

Setiap karakter adalah satu bit, yang menunjukkan tanda untuk bilangan floating-point sepenuhnya. Mantra dan perintah adalah bilangan bulat, digabungkan dengan tanda dan membuat representasi bilangan floating-point. Perintah bisa disebut eksponen atau eksponen. Tidak semua bilangan real dapat diwakili dalam komputer sesuai arti sebenarnya, sedangkan sisanya diwakili oleh nilai perkiraan. Varian yang jauh lebih sederhana adalah untuk mewakili bilangan real dengan titik tetap, di mana bagian sebenarnya dan keseluruhan disimpan secara terpisah. Kemungkinan besar, sedemikian rupa sehingga seluruh bagian selalu dialokasikan X bit, dan pecahan - bit Y. Tapi arsitektur prosesor tidak mengetahui metode ini, dan oleh karena itu preferensi diberikan pada bilangan floating-point.

Penambahan

Menambahkan bilangan floating-point cukup sederhana. Sehubungan dengan standar IEEE 754, ketepatan satu angka memiliki sejumlah besar bit, jadi lebih baik langsung ke contoh, dan lebih baik mengambil representasi terkecil dari bilangan floating-point. Misalnya, dua angka - X dan Y.

Tidak bervariasi Tanda Peserta pameran Mantissa
X 0 1001 110
Y 0 0111 000

Langkah-langkahnya adalah:

A) Angka harus disajikan dalam bentuk yang dinormalisasi. Jelas, unit tersembunyi muncul. X = 1,110 . 2 2 , dan Y = 1.000 . 2 0 .

B) Proses penambahan dapat dilanjutkan hanya dengan menyamakan eksponen, dan untuk ini perlu untuk menulis ulang nilai Y. Ini akan sesuai dengan nilai bilangan normal, walaupun sebenarnya akan denormalized.

Hitunglah perbedaan eksponen dari derajat 2 - 0 = 2. Sekarang pindahkan mantissa untuk mengkompensasi perubahan ini, yaitu menambahkan 2 ke eksponen summand kedua, sehingga mengubah koma unit tersembunyi menjadi dua titik ke kiri. Ini memberikan 0,0100 . 2 2 . Ini akan sama dengan nilai Y sebelumnya, yaitu sudah Y '.

C) Sekarang kita perlu melipat mantenta nomor X dan Y yang disesuaikan.

1,110 + 0,01 = 10,0

Eksponennya masih sama dengan indikator yang disajikan X, yaitu sebesar 2.

D) Jumlah yang diterima pada tahap sebelumnya telah menggantikan unit normalisasi, jadi Anda perlu memindahkan eksponen dan ulangi penjumlahannya. 10,0 dengan dua bit di sebelah kiri koma, sekarang jumlahnya perlu dinormalisasi, yaitu memindahkan koma ke kiri dengan satu titik, dan meningkatkan eksponen dengan 1. Ini ternyata 1.000 . 2 3 .

E) Saatnya untuk mengonversi bilangan floating-point ke sistem single-byte.

Jumlah Tanda Peserta pameran Mantissa
X + Y 0 1010 000

Kesimpulan

Seperti yang bisa Anda lihat, menambahkan nomor seperti itu tidak terlalu sulit, tidak ada koma yang mengapung. Jika, tentu saja, kita tidak mempertimbangkan pengurangan jumlah dengan eksponen yang lebih kecil ke jumlah yang lebih besar (seperti contoh Y ke X), dan juga pemulihan status quo, yaitu, dikeluarkannya kompensasi - pergerakan koma di sebelah kiri mantissa. Bila penambahan sudah dilakukan, sangat mungkin dan kesulitan lain - renormalization dan bit truncation, jika jumlahnya tidak sesuai dengan format angka untuk mewakilinya.

Perkalian

Sistem biner menawarkan dua cara untuk mengalikan angka floating point. Tugas ini dapat dilakukan dengan mengalikan, yang dimulai dengan bit paling signifikan dan dimulai dengan digit tertinggi dalam pengganda. Kedua kasus tersebut mengandung sejumlah operasi, sekaligus menambahkan karya pribadi. Operasi penambahan ini dikendalikan oleh bit pengganda. Oleh karena itu, jika ada satu dari satu digit pengganda, maka jumlah produk parsial tumbuh berlipat ganda dengan pergeseran yang sesuai. Dan jika nol dikalikan dengan multiplier, maka multiplicand tidak ditambahkan.

Jika perkalian hanya dua angka dilakukan, maka angka produk dalam jumlah tidak melebihi jumlah digit yang terdapat pada faktor lebih dari dua kali, dan untuk jumlah besar ini sangat banyak. Jika beberapa nomor dikalikan, maka produk tersebut berisiko tidak ditempatkan di layar. Oleh karena itu, jumlah digit dari setiap otomat digital benar-benar terbatas, dan ini memaksa kita untuk membatasi diri kita sendiri, maksimal, dengan jumlah digit dari totalizer. Dan jika jumlah digit terbatas, ada kesalahan yang pasti akan memasuki pekerjaan. Jika volume perhitungannya besar, maka kesalahannya ditumpangkan, dan akibatnya, total error sangat meningkat. Disini satu-satunya jalan keluar adalah untuk melengkapi hasil perkalian, maka kesalahan produk akan berubah menjadi alternating. Ketika operasi perkalian dilakukan, adalah mungkin untuk melampaui batas digit, tapi hanya dari sisi lower order, karena pembatasan yang dikenakan pada angka yang terwakili dalam bentuk titik koma adalah tetap.

Beberapa penjelasan

Lebih baik memulai dulu. Cara yang paling umum untuk mewakili suatu bilangan adalah sebagai deret angka sebagai bilangan bulat, di mana koma itu dimaksudkan pada akhirnya. String ini bisa berupa panjang apapun, dan koma berada di tempat yang paling penting untuk itu, memisahkan keseluruhan bilangan dari bagian pecahannya. Format representasi fixed-point dari sebuah sistem harus menempatkan kondisi tertentu untuk lokasi koma. Notasi eksponensial menggunakan representasi angka normal yang dinormalisasi. Ini adalah aqn {\ displaystyle aq ^ {n}} aq n . Di sini sebuah {\ displaystyle a} a , dan renda ini disebut mantissa. Hampir begini dikatakan bahwa 0 ⩽ a n adalah bilangan bulat, eksponen, dan q {/ displaystyle q} q juga merupakan bilangan bulat, yang merupakan dasar dari sistem bilangan yang diberikan (dan dalam huruf biasanya 10). Mantissa akan meninggalkan koma setelah digit pertama, yang bukan nol, namun informasi lebih lanjut dicatat pada nilai sebenarnya dari nomor tersebut.

Angka floating-point sangat mirip dengan notasi standar standar untuk bilangan, hanya eksponen dan mantissa yang direkam secara terpisah. Yang terakhir juga dalam format normalisasi - dengan koma tetap, yang menghiasi tokoh penting pertama. Cukup koma mengambang digunakan terutama di komputer, yaitu, dalam representasi elektronik, di mana sistem tidak desimal, tapi biner, di mana bahkan mantissa disandikan oleh koma - sekarang sebelum digit pertama, lalu sebelum dan tidak setelah itu, di mana seluruh bagian Pada prinsipnya, itu tidak mungkin. Sebagai contoh, sistem desimal asli kita akan memberikan sembilan ke sistem biner untuk penggunaan sementara. Dan dia akan menuliskannya dengan floating point mantissa seperti ini: +1001000 ... 0, dan +0 ... 0100 ke sana. Tapi sistem desimal tidak dapat menghasilkan perhitungan kompleks seperti itu dalam biner, dengan menggunakan bentuk floating-point.

Aritmatika panjang

Di komputer elektronik ada paket perangkat lunak built-in, di mana jumlah memori yang dialokasikan untuk mantissa dan eksponen diprogram, hanya terbatas pada ukuran memori komputer. Ini adalah berapa lama aritmatika terlihat, yaitu operasi sederhana pada nomor yang dilakukan oleh komputer. Ini semua sama - pengurangan dan penambahan, pembagian dan perkalian, fungsi dasar dan ereksi ke akar. Tapi hanya angka yang benar-benar berbeda, kedalaman bitnya bisa melebihi panjang kata komputer. Pelaksanaan operasi semacam itu bukanlah perangkat keras, tapi perangkat lunak, namun perangkat keras dasar banyak digunakan untuk bekerja dengan pesanan jauh lebih rendah. Ada juga aritmatika, dimana panjang bilangan hanya terbatas pada jumlah memori - aritmatika presisi sewenang-wenang. Sebuah aritmatika panjang digunakan di banyak daerah.

1. Untuk mengkompilasi kode (prosesor, mikrokontroler bit rendah - 10 bit dan register bit 8 bit, ini jelas tidak cukup untuk memproses informasi dengan Analog-ke-digital, dan karena itu tidak dilakukan tanpa aritmatika panjang.

2. Hal ini juga aritmatika panjang digunakan untuk kriptografi, di mana perlu untuk memastikan keakuratan hasil exponentiation atau perkalian 10.309. aritmatika bilangan bulat digunakan modulo m - sejumlah alam besar, dan tidak selalu sederhana.

3. Software untuk pemodal dan matematikawan, juga, bukan tanpa aritmatika panjang, karena satu-satunya cara untuk memverifikasi hasil perhitungan di atas kertas - dengan bantuan komputer, memastikan akurasi yang tinggi dari angka-angka. Floating point mereka dapat melibatkan sejumlah debit panjang. Namun perhitungan teknik dan pekerjaan para ilmuwan memerlukan perhitungan program intervensi sangat sering, karena sangat sulit untuk membuat input data tanpa membuat kesalahan. mereka biasanya jauh lebih produktif daripada hasil pembulatan.

Melawan dengan kesalahan

Ketika sejumlah operasi di mana floating point, sangat sulit untuk menilai keakuratan hasil. Belum ditemukan memuaskan semua teori matematika yang akan membantu untuk mengatasi masalah ini. Tapi integer kesalahan mengevaluasi mudah. Kemungkinan menyingkirkan ketidakakuratan di permukaan - hanya menggunakan hanya jumlah fixed-point. Sebagai contoh, program keuangan yang dibangun di atas prinsip ini. Namun, ada sederhana: jumlah yang diperlukan digit setelah titik desimal dikenal di muka.

Aplikasi lain tidak terbatas pada, karena Anda tidak dapat bekerja dengan baik jumlah yang sangat kecil atau sangat besar. Jadi, ketika Anda bekerja selalu memperhitungkan bahwa mungkin ada ketidakakuratan, dan karena derivasi dari hasil itu perlu untuk putaran. Selain itu, pembulatan otomatis sering kurangnya tindakan, dan karena itu pembulatan didefinisikan secara spesifik. Sangat berbahaya dalam hal ini, operasi perbandingan. Bahkan ada memperkirakan jumlah kesalahan masa depan sangat sulit.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 delachieve.com. Theme powered by WordPress.