Rumah > Artikel > tutorial komputer > Analisis mendalam operasi titik terapung jenis dua dalam JAVA
berganda f=0.0005;
ganda i=3;
berganda d=f*i;
berganda f1=0.0005;
berganda j=3;
berganda d1=f1*j;
jika(d==d1){
System.out.println("aaa");
} Ini adalah bersamaan Jenis data asas dalam Java dipanggil pembolehubah automatik menyimpan nilai literal Memandangkan saiz data dan nilai literal diketahui, ia diletakkan pada timbunan Data dalam boleh dikongsi sebagai contoh, int a=3 int b=3, pengkompil terlebih dahulu memproses int a=3 terlebih dahulu ia akan membuat rujukan kepada pembolehubah a pada timbunan, dan kemudian mencari alamat dengan a nilai literal sama dengan 3. Jika tidak, ia akan Membuka alamat untuk menyimpan nilai literal 3, dan kemudian memproses int b=3 selepas mencipta aplikasi dengan pembolehubah b, cari jika terdapat alamat dengan nilai literal 3; Sekarang, ia menunjuk ke alamat 3. Pada masa ini, gunakan == (apabila menilai sama ada alamat adalah sama) akan menjadi Benar
1. Prestasi titik terapung, dahulunya dipanggil coprocessor, 486 tidak disertakan dalam CPU sebelum ini (8086~8087, 80286~80287, 80386~80387=80386DX, 80486SX~80487=80486) Aritmetik titik terapung ialah kaedah aritmetik berketepatan tinggi yang digunakan terutamanya dalam sains dan multimedia.
2. Ia boleh difahami sebagai kaedah operasi di mana titik perpuluhan boleh digerakkan. Kelajuan semasa AMD>>Inter
3. Nombor titik terapung merujuk kepada nombor rasional dengan tempat perpuluhan terhad, seperti -10.8, 0.00, 25.01, dsb.
4. Operasi titik terapung, hasilnya ialah nombor titik terapung, dan bahagian perpuluhan hasil pengiraan akan dikekalkan.
Contohnya: apabila menggunakan aritmetik titik terapung, 100.0÷3.0=33.33333333.
5 Sebagai contoh, jika peluru mengenai dinding dan sekeping tanah jatuh, dengan pengiraan titik terapung yang kuat, mungkin untuk memaparkan habuk yang jatuh.
Semoga diterima pakai
3.14 ialah ketepatan tunggal dan 3.14159 ialah ketepatan berganda.
Perbezaan antara keduanya adalah seperti berikut:
1. Rujukan yang berbeza
1. Ketepatan tunggal: merujuk kepada cara untuk komputer menyatakan anggaran nombor sebenar.
2. Ketepatan berganda: Jenis data ini serupa dengan jenis data ketepatan tunggal (terapung), tetapi mempunyai ketepatan yang lebih tinggi daripada terapung.
2. Ruang yang diduduki berbeza
1. Ketepatan tunggal: Julat adalah dari -3.402823E38 hingga -1.401298E-45 apabila nombor negatif, dan dari 1.401298E-45 hingga 3.402823E38 apabila nombor positif.
2. Ketepatan berganda: Jenis ketepatan berganda menduduki 8 bait (64 bit) ruang memori, dan julat nilainya ialah -1.79769313486232E308 hingga 1.79769313486232E308.
3. Ciri-ciri berbeza
1. Ketepatan tunggal: Apabila nilai lebih kecil daripada nilai di atas, ketepatan akan hilang secara beransur-ansur disebabkan oleh pengurangan bilangan digit bererti mantissa (seperti yang dinyatakan dalam IEEE 754), atau beberapa sistem secara langsung menggunakan nilai 0 untuk memudahkan proses pemprosesan.
2. Ketepatan berganda: Ruang memori yang diduduki semasa penyusunan berbeza-beza mengikut penyusun berbeza Ia adalah jenis data apungan berganda, jenis pembolehubah yang mewakili pembolehubah sebenar dalam C/C++.
Sumber rujukan: Ensiklopedia Single Precision
Sumber rujukan: Ensiklopedia-Double Precision Floating Point
Takat terapung diperoleh dengan mendarab nombor bulat atau titik tetap (iaitu, mantissa) dengan kuasa integer bagi asas tertentu (biasanya 2 dalam komputer Kaedah perwakilan ini serupa dengan tatatanda saintifik dengan asas 10).
Nombor titik terapung a diwakili oleh dua nombor m dan e: a = m * b^e (b dinaikkan kepada kuasa e).
Dalam mana-mana sistem sedemikian, kami memilih asas b (asas sistem tatatanda) dan ketepatan p (iaitu berapa banyak bit untuk digunakan untuk penyimpanan). m (iaitu, mantissa) ialah bilangan digit p dalam bentuk ±d.ddd...ddd (setiap bit ialah integer antara 0 dan b-1, termasuk 0 dan b-1). Jika bit pertama m ialah integer bukan sifar, m dipanggil ternormal.
Sesetengah penerangan menggunakan bit tanda berasingan (s mewakili + atau -) untuk menunjukkan positif atau negatif, jadi m mestilah positif. e ialah eksponen.
Kita boleh menggunakan 3 kaedah ini untuk mewakili nombor titik terapung:
1. Kod BCD.
2. Perwakilan kod eksponen mantissa.
3 Kita boleh mengubah kaedah kedua untuk mendapatkan kaedah yang lebih baik. Mula-mula gerakkan titik perpuluhan nombor titik terapung ke penghujung, dinyatakan sebagai N=M*RC, R=10, dan kemudian tukar M kepada binari B, kemudian gunakan C sebagai kod eksponen, dan gunakan B sebagai mantissa untuk menyatakan ia menggunakan kaedah mantissa kod eksponen.
Contohnya: 3.14159=314159*10^(-5).
314159 dinyatakan dalam binari sebagai 1001100101100101111.
Menggunakan kaedah ini bukan sahaja boleh mewakili nilai nombor titik terapung dengan tepat, tetapi juga menggunakan sepenuhnya ruang storan.
Maklumat lanjutan:
Unit Titik Terapung (FPU)
Operasi titik terapung adalah berbeza daripada operasi integer, jadi unit aritmetik sudah tentu berbeza. Pemproses titik terapung awal muncul sebagai "pemproses bersama luaran" untuk CPU. x87 FPU secara khusus merujuk kepada seni bina koprosesor titik terapung yang digunakan dengan pemproses x86.
Berikut adalah perkara-perkara berikut:
1. Daftar titik terapung menggunakan struktur tindanan.
Kedalaman ialah 8 dan lebarnya ialah 80 bit, iaitu 8 register 80-bit.
Nama ialah ST(0) ~ ST(7), bahagian atas tindanan ialah ST(0), dan nombornya ialah 0 ~ 7 masing-masing.
2. Semua operasi titik terapung dilakukan dengan ketepatan lanjutan 80-bit.
3. Nombor titik terapung dipindahkan antara daftar titik terapung dan memori.
(1) Pembolehubah jenis berganda terapung, berganda dan panjang diwakili dalam ingatan menggunakan IEEE 754 ketepatan tunggal, ketepatan berganda, dan ketepatan lanjutan masing-masing, menduduki 32 bit, 64 bit dan 96 bit masing-masing (16 bit pertama adalah tidak sah) .
(2) Pembolehubah jenis berganda terapung, berganda dan panjang semuanya diwakili dengan ketepatan lanjutan 80-bit dalam daftar titik terapung.
(3) Daripada daftar titik terapung ke memori: Format ketepatan lanjutan 80-bit ditukar kepada 32-bit atau 64-bit.
(4) Dari memori kepada daftar titik terapung: penukaran 32-bit atau 64-bit kepada format ketepatan lanjutan 80-bit.
Sumber rujukan: Encyclopedia-Floating Point
Ensiklopedia-Perwakilan titik terapung
Atas ialah kandungan terperinci Analisis mendalam operasi titik terapung jenis dua dalam JAVA. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!