JavaRush /Blog Jawa /Random-JV /Nomer nyata ing memori komputer. Panjelasan.
Marianna
tingkat
Москва

Nomer nyata ing memori komputer. Panjelasan.

Diterbitake ing grup
sugeng sonten Nalika sinau kuliah "Nuansa nggarap nomer nyata" saka nggoleki pisanan (bagean 2. Struktur angka floating point) lan ceramah tambahan babagan topik kasebut, mesthine akeh sing nemoni akeh pitakonan babagan topik iki. Kaping pisanan, aku nyoba menehi jawaban sing dibutuhake, lan saiki aku menehi sampeyan supaya bisa ngerti kanthi lengkap kanthi urutan logis sing konsisten. 1. Sistem wilangan desimal lan biner. 1.1 Sistem angka desimal minangka salah sawijining sistem sing paling umum; yaiku sistem sing digunakake kanggo pitungan matematika non-komputer ing sekolah, universitas, ing urip. Iki nggunakake angka 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 (Arab) - total 10 digit. Ana uga notasi Romawi kanggo angka, sing saiki wis ora digunakake. Ing sistem desimal, pancacahan ditindakake kanthi unit, puluhan, atusan, ewu, puluhan ewu, atusan ewu, yuta, lsp. - ing tembung liyane, iki kabeh digit nomer. Digit nomer yaiku posisi (panggonan) digit ing cathetan nomer. Digit paling ngisor saka nomer alami (lan paling signifikan ) yaiku digit unit (paling tengen). Kenapa dheweke paling sepele? Amarga kanthi nyelehake digit unit nomer, nomer kasebut bakal diganti kanthi minimal (contone, angka 345 lan 340). Sabanjure, digit kapindho yaiku digit puluhan, lsp. Apa tegese kabeh iki? Ayo njupuk sembarang integer ing sistem desimal lan decompose menyang digit . 3297 = 3*1000 + 2*100 + 9*10 + 7 Mangkono, kita nemokake yen angka 3297 ngemot 3 unit saka digit kaping papat (yaiku, 3 ewu), 2 unit saka digit katelu (2 atus), 9 unit digit kapindho (9 puluhan) lan 7 unit digit pisanan . Ing tembung liyane, nomer iki telung ewu rong atus sangang puluh pitu lan iku, miturut, posisi . Kepiye babagan digit nomer pecahan (nyata) ? Digit saka wilangan pecahan (bagean pecahan) diarani: sepuluh, atus, ewu, sepuluh ewu, etc. Sing luwih adoh digit saka titik desimal (saka kabèh bagéan saka nomer), iku kurang pinunjul (discarding iku, Nilai saka nomer bakal ngganti sethitik). Contone, ayo njupuk nomer pecahan sing dituduhake minangka desimal: 25.076 = 2*10 + 5 +0*0.1 + 7*0.01 +6*0.001 Mangkono, kita nemokake yen nomer pecahan 25.076 ngemot 2 puluhan, 5 unit, 0 tenths. , 7 atus lan 6 ewu. Sistem desimal nggunakake 10 digit lan kelipatan 10 panggonan - mula diarani "desimal". 1.2 Sistem angka biner yaiku sistem angka sing digunakake ing meh kabeh komputer modern lan piranti elektronik komputasi liyane. Kanggo ngrekam nomer, mung nggunakake rong digit - 0 lan 1. Supaya ora bingung sistem nomer sing ditulis nomer kasebut, diwenehake karo indikator ing sisih tengen ngisor (iku basis saka sistem nomer ), kanggo contone: 1000₁₀ 1000₂ Ing kene angka pisanan yaiku ewu sing dikenal ing sistem desimal, lan sing paling ngisor yaiku angka ing perwakilan sistem biner lan padha karo sistem desimal... 8 ! Kaya sistem desimal, sistem biner uga ngilangi angka dadi digit . Saben digit ing nomer biner diarani bit (utawa digit ). (Yen ana sing kasengsem, papat bit minangka nibble (utawa tetrad), 8 bit minangka bita , 16 bit minangka tembung , 32 bit minangka tembung dobel ). Bit (digit) uga diwenehi nomer saka tengen ngiwa, wiwit saka nol (ora kaya sistem desimal). Sing paling ora signifikan, paling ora signifikan, bit tengen duwe nomer urutan 0 . Sabanjure, bit pisanan , kaloro , lan liya-liyane, bit sing luwih tuwa , luwih penting (kanthi analogi karo sistem desimal sing kita ngerti - yen sampeyan mbusak sing saka nomer 1455, sampeyan bakal ditinggalake karo nomer 1450. - meh padha karo sing wiwitan Nanging yen sampeyan ngilangi atusan, sampeyan bakal ditinggalake karo nomer 1050, sing wis adoh saka nilai awal, amarga papan atusan luwih penting (urutan dhuwur) tinimbang papan unit. ). Tuladha. AJA MACA :))) Nomer nyata ing memori komputer.  ING PENGEMBANGAN!!!  - 2 Ing sisih ngisor, bit saka nomer biner pecahan iki nomer abang - total kita duwe 18 bit (digit) saka nomer iki. Looking ahead, Aku kaya Wigati sing nomer pecahan disimpen ing memori komputer ing cara temen beda - iki bakal rembugan mengko. Ing sawetoro wektu, ayo sinau carane ngowahi nomer saka siji sistem nomer liyane. 2. Ngonversi bilangan bulat lan pecahan saka sistem desimal menyang sistem biner lan kosok balene. 2.1 Konversi saka desimal menyang binar. 2.1.1 Integer. Kanggo ngowahi nomer desimal integer menyang sistem nomer binar, sampeyan kudu dibagi nomer iki kanthi 2, tulisake sisa divisi (iku mesthi padha karo 0 utawa 1, gumantung apa nomer kasebut genap utawa ganjil). , lan dibagi asil divisi maneh karo 2, maneh nulis mudhun seko divisi (0 utawa 1), lan dibagi asil saka divisi kapindho karo 2. Terusake cara iki nganti asil divisi padha karo siji. Sabanjure, kita nulis mudhun kabeh asil nul lan siji ing urutan mbalikke , miwiti karo asil divisi paling anyar, kang tansah padha karo 1. Cathetan penting. Asil pungkasan saka divisi urut saka ANY INTEGER dening 2 bakal tansah dadi siji (1)! Yen asil luwih saka 1, kita terus dibagi asil iki 2 nganti kita entuk siji minangka asil. Lan asil divisi dening 2 bisa nul (0) mung ing siji cilik - iki divisi saka nul dhewe dening 2. Conto. Ngonversi angka 145 saka sistem desimal menyang biner. 145/2 = 72 (sisa 1 ) 72/2 = 36 (sisa 0 ) 36/2 = 18 (sisa 0 ) 18/2 = 9 (sisa 0 ) 9/2 = 4 (sisa 1 ) 4/2 = 2 (sisa 0 ) 2/2 = 1 (sisa 0 ) Saiki kita "ngumpulake" nomer biner ing urutan mbalikke. We njaluk nomer 10010001. Rampung! Nuansa menarik 1. Ayo ngowahi angka 1 saka sistem desimal dadi biner. Ing sistem biner, angka iki uga bakal ditulis minangka 1. Sawise kabeh, asil pungkasan saka divisi dening 2, sing kudu padha karo 1, wis padha karo nomer 1 dhewe. 1₁₀ = 1₂ nuansa menarik 2. Ayo ngowahi angka 0 saka sistem desimal kanggo biner. Ing sistem biner, angka iki uga bakal ditulis minangka 0. 0₁₀ = 0₂ 2.1.2 Nomer pecahan. Kepiye carane ngowahi nomer pecahan dadi binar? Kanggo ngowahi pecahan desimal menyang sistem angka biner, sampeyan kudu: a) Ngonversi kabeh bagean saka pecahan menyang sistem biner miturut algoritma sinau ing paragraf 2.1.1 b) multiply bagean pecahan saka pecahan karo 2 , nulis digit asil saka asil sadurunge titik desimal (tansah padha karo 0 utawa 1, sing logis), banjur mung tikelake bagean pecahan saka asil sing dipikolehi kanthi 2 maneh, tulisake digit asil kasebut sadurunge titik desimal (0 utawa 1) lan sateruse nganti pecahan. bagéan saka asil pingan dadi witjaksono kanggo 0 utawa nganti nomer sing dibutuhake saka panggonan desimal (dibutuhake tliti ) (padha karo nomer multiplications dening 2). Banjur sampeyan kudu nulis mudhun urutan asil saka nul ditulis lan siji IN ORDER sawise titik misahake integer lan pecahan bagean nyata (pecahan) nomer. Tuladha 1. Ayo ngowahi angka 2.25 (2 titik 25 seratus) saka sistem desimal menyang sistem biner. Ing sistem binar pecahan bakal padha karo 10.01 . Kepiye carane kita entuk iki? Nomer kasebut kalebu bagean integer (nganti titik) - iki 2 lan bagean pecahan - iki 0,25. 1) Terjemahan saka kabeh bagean: 2/2 = 1 (sisa 0 ) Kabeh bagean bakal 10 . 2) Terjemahan bagean pecahan. 0,25 * 2 = 0,5 (0) 0,5 * 2 = 1 Saiki kita "ngumpulake" bagean pecahan IN ORDER - kita entuk 0,01 ing sistem binar. 3) Nambah bagean integer lan pecahan - kita entuk yen pecahan desimal 2.25 bakal padha karo pecahan binar 10.01 . Tuladha 2. Ayo ngowahi angka 0.116 saka sistem desimal menyang sistem biner. 0,116 * 2 = 0,232 (0) 0,232 * 2 = 0,464 (0 ) 0,464 * 2 = 0,928 (0) 0,928 * 2 = 1,856 (1) //bucal bagean integer saka asil iki 0,816 * 7 = 1,816 * 2 ) //bucal kabeh bagean saka asil iki 0.712 * 2 = 1 .424 (1) //bucal kabeh bagean asil iki 0.424 * 2 = 0 .848 (0) Minangka kita bisa ndeleng, multiplikasi terus lan terus. , bagean pecahan saka asil ora dadi padha karo 0. Banjur kita mutusake yen kita bakal ngowahi pecahan desimal menyang binar kanthi akurasi 7 panggonan desimal (bit) sawise titik (ing bagean pecahan). Ayo kita ngelingi apa sing kita sinau babagan bit-bit sing ora pati penting - luwih akeh bit (bit) saka kabeh bagean, luwih gampang kita nglirwakake (panjelasan ing bagean 1 kuliah, sing lali). Kita entuk pecahan binar 0.0001110 kanthi akurasi 7 bit sawise titik kasebut. 2.2 Konversi saka binar menyang desimal. 2.2.1 Integer. Kanggo nerjemahake kabehnomer saka sistem nomer biner kanggo desimal, iku perlu kanggo dibagi nomer iki menyang digit (bit) lan multiply saben digit (bit) dening nomer 2 kanggo jurusan positif tartamtu (gelar iki wiwit ngetang saka tengen ngiwa saka paling pinunjul. (bit tengen) lan diwiwiti saka 0 ). Ing tembung liyane, daya saka loro padha karo nomer bit tartamtu (nanging aturan ora ditulis iki mung bisa digunakake ing kasus ngowahi integers , amarga kanggo nomer pecahan nomer bit diwiwiti ing bagean pecahan, kang dijarwakake. menyang sistem desimal beda ). Sabanjure, sampeyan kudu nambah produk sing diasilake. Tuladha. Ngonversi angka biner 110011 menyang sistem angka desimal. 110011₂ = 1*2⁵ + 1*2⁴ + 0*2³ + 0*2² + 1*2¹ + 1*2º = 32 +16 +0 + 0 + 2 + 1 = 51₁₀ Akibaté, kita entuk angka 51 ing sistem binar . Kanggo informasi, ing ngisor iki tabel kakuwasan pisanan saka nomer 2 . AJA MACA :))) Nomer nyata ing memori komputer.  ING PENGEMBANGAN!!!  - 5 ! Wigati dimangerteni menawa daya nul nomer tansah 1. 2.2.2 Nomer pecahan. Kanggo ngowahi angka pecahan (nyata) binar dadi desimal , sampeyan kudu: a) ngowahi bagean integer dadi desimal miturut algoritma saka paragraf 2.2.1 ; b) terjemahake bagean pecahan kasebut kaya ing ngisor iki. Sampeyan perlu kanggo nampilake bagean pecahan minangka jumlah produk saka digit dening loro , diunggahake menyang daya negatif tartamtu (daya kanggo digit pisanan sawise titik (sawise kabeh bagean saka pecahan) bakal padha karo -1, kanggo digit kapindho sawise titik bakal witjaksono kanggo -2, etc.) Asil iki jumlah bakal bagean pecahan saka nomer ing sistem desimal. Tuladha. Ngonversi angka 10111.01 menyang sistem binar. 10111,01₂ = (1*2⁴ + 0*2³ + 0*2² + 1*2¹ + 1*2º) . (0*2ˉ¹ + 1*2ˉ²) = (16 + 0 + 4 + 2 + 1) . (0 + 0,25) = 23,25₁₀ Akibaté, kita entuk angka 23,25 ing sistem angka desimal. Tabel daya negatif pisanan saka 2 diwenehi ing ngisor iki. AJA MACA :))) Nomer nyata ing memori komputer.  ING PENGEMBANGAN!!!  - 7 2.2.3 Rumus umum kanggo ngowahi angka saka binar menyang desimal. Ayo menehi rumus umum kanggo ngowahi angka saka biner menyang desimal (bagean integer lan pecahan). AJA MACA :))) Nomer nyata ing memori komputer.  ING PENGEMBANGAN!!!  - 4 ngendi A iku nomer ing sistem nomer binar; Dasar sistem nomer yaiku 2 (tegese saben bit dikali 2 dadi daya); n- nomer integer digit (bit) ; m iku jumlah digit pecahan (bit) saka nomer . Bit pisanan saka bagean integer saka titik pamisah disorot abang . Iku tansah ping pingan dening 2 kanggo daya nul. Bit sabanjure sadurunge (ing sisih kiwa) dikali 2 kanggo daya pisanan, lsp. Bagean pecahan pisanan saka titik pamisah disorot nganggo warna ijo . Iku tansah ping pingan dening 2 kanggo daya pisanan minus. Bit sabanjure ing sisih tengen dikali 2 nganti minus daya kapindho, lsp. 3. Notasi ilmiah: notasi sing dinormalisasi ing loro sistem kasebut. Mantissa, eksponen, derajat saka eksponen. 3.1 Wujud eksponensial nulis angka. Sadurunge, kita sinau skema rinci kanggo ngrekam nomer posisi kanthi digit. Ayo njupuk nomer 0.000000000000000000016 . Wis entri dawa banget ing wangun standar . Lan ing wangun eksponensial bakal katon kaya iki: 1.6 * 10ˉ²¹ Dadi apa wangun eksponensial saka nomer lan carane makili nomer ing wangun iki? Notasi ilmiah kanggo nomer minangka perwakilan saka nomer nyata minangka mantissa lan eksponen . Trep kanggo makili nomer sing gedhe banget lan cilik banget, uga kanggo nyawiji tulisane. N = M * pⁿ ing ngendi N minangka nomer sing bakal ditulis, M minangka mantissa saka nomer, p minangka basis (padha karo basis sistem wilangan nomer kasebut), n (integer) minangka urutan (derajat). , bisa positif lan negatif), p kanggo daya saka n minangka nomer karakteristik (eksponen, yaiku basa diunggahake menyang daya (urutan)). Nuansa penting. Yen bagean integer nomer desimal beda karo 0 , banjur urutan (derajat) saka eksponen bakal positif , yen bagean integer padha karo 0 , derajat saka eksponen bakal negatif . 3.2 Wujud normal lan normal nulis angka. Wangun normal saka angka yaiku wujud sing mantissa (tanpa nggatekake tandha) dumunung ing setengah interval [0,1], yaiku 0 <= M < 1. Bentuk tulisan iki nduweni drawback: sawetara nomer ditulis ambigu (contone, 0,0001 bisa ditulis minangka 0,000001 * 10², 0,00001⋅10¹, 0,0001⋅10º, 0,001⋅10ˉ¹ lan ing). Mulane, wangun rekaman liyane nyebar (utamane ing ilmu komputer) - dinormalisasi, ing endi mantissa nomer desimal njupuk nilai saka 1 (inklusif) nganti 10 (eksklusif), yaiku, 1 <= M <10 (uga, mantissa nomer biner njupuk nilai saka 1 nganti 2 ). Ing tembung liyane, mantissa ing sistem desimal kudu nomer pecahan saka 1.0 (kalebu) kanggo 10 (eksklusif) , i.e. bagean integer saka mantissa kudu ngemot siji digit, lan bagean pecahan ora matematis winates. Kauntungan saka wangun sing dinormalisasi yaiku, kanthi mangkono, nomer apa wae (kajaba 0) ditulis kanthi cara sing unik. Kerugian yaiku ora bisa makili 0 ing wangun iki, mula perwakilan angka ing ilmu komputer menehi tandha khusus (bit) kanggo nomer 0. 3.3 Conto nulis angka desimal ing wangun normalisasi eksponensial. Ayo padha ndeleng conto. Tuladha 1. Ayo nulis angka desimal 1015000 (sejuta limalas ewu) ing wangun normalisasi eksponensial. Sistem nomer kanggo nomer iki desimal, dadi basise 10 . Ayo milih mantissa . Kanggo nindakake iki, mbayangno nomer minangka pecahan, bagean pecahan kang bakal padha karo nul (amarga nomer integer): 1000000.0. Yen bagean integer saka nomer luwih saka 0 , banjur pindhah titik ing sisih kiwa saka posisi wiwitan (ing bagean integer) nganti ana mung siji digit kiwa ing bagean integer . Sawise kita sijine wektu. We discard nol ora pati penting (ing mburi nomer). Kita entuk mantissa nomer sing padha karo 1.015 . Ayo nemtokake derajat (urutan) dhasar nomer kasebut. Pira posisi ing sisih kiwa titik sing misahake integer lan bagean pecahan dipindhah? Kanggo enem posisi. Iki tegese pesenan bakal dadi 6 . Ing kasus iki, urutan positif (kita mindhah titik ing bagean integer saka nomer ora padha karo 0). Entri pungkasan ing wangun normal: 1.015 * 10⁶ . Kita bisa nulis nomer iki ing wangun iki: 1.015E6 (ngendi E6 minangka eksponen saka nomer desimal, yaiku 10 kanggo daya 6th). Ayo padha nyoba dhewe. Notasi eksponensial kanggo nomer ora luwih saka produk saka nomer (mantissa) lan nomer liyane (eksponen). Apa sing kedadeyan yen sampeyan tikel 1,015 karo 10⁶? 1.015*10⁶ = 1.015*1000000 = 1015000 . Bener. Pendekatan iki (dinormalisasi) mbantu nggawe rekaman sing ora ambigunomer ing wangun eksponensial, minangka dituduhake ing ndhuwur. Conto 2. Ayo nulis angka desimal nyata 0.0098 ing wangun normal. Ayo nyorot dhasar nomer - padha karo 10 (sistem angka desimal). Ayo milih nomer mantissa - padha karo 9,8 (bagean integer nomer padha karo nol, sing tegese kita mindhah titik menyang sisih tengen menyang digit penting pisanan (ing kisaran saka 1 nganti 9 kalebu) Kita nemtokake urutan nomer - kita mindhah titik kanthi telung posisi, tegese urutan kasebut 3. Positif apa negatif utawa negatif? Awit kita mindhah titik kasebut ing sisih tengen (ing bagean pecahan saka angka), urutan (daya) bakal negatif . Cathetan pungkasan nomer ing wangun normal yaiku 9.8 * 10ˉ³ utawa 9.8E-3 . Ayo dipriksa maneh dhewe. Multiply 9.8 karo 10ˉ³. 9.8 * 10ˉ³ = 9.8 * 0.001 = 0.0098 . Conto 3. Ayo nulis angka desimal nyata 3.56 ing wangun normal Pilih basis nomer - padha karo 10 (sistem angka desimal) Pilih mantissa nomer - padha karo ... 3.56 (integer). bagean saka nomer siji digit siji, ora padha karo 0. Iki tegese titik ora perlu dipindhah menyang ngendi wae, nomer dhewe bakal mantissa.) Ayo nyorot urutan basa: Miturut nomer apa mantissa kudu , witjaksono kanggo nomer dhewe, bakal ping pingan supaya ora ngganti? saben unit. Iki tegese pesenan bakal nol. Cathetan pungkasan nomer ing wangun normal yaiku 3.56 * 10º utawa 3.56E0. 4. Nyimpen nomer nyata ing memori komputer: ngambang lan pindho. 4.1 Jinis ngambang lan pindho. Ayo pindhah menyang bagean kunci saka ceramah kita. Kaya sing wis dingerteni, ana rong jinis wilangan nyata ing Jawa: float lan dobel . Tipe float manggoni 32 bit ing memori komputer lan bisa njupuk nilai ing sawetara [3.4E-38; 3.4E+38) (kanthi tembung liya, ing kisaran saka 3.4*10ˉ³⁸ (kalebu) nganti 3.4 * 10³⁸ (ora kalebu)). Nuansa penting 1. Angka float bisa dadi positif utawa negatif. Rentang iki ing ndhuwur dituduhake kanggo nunjukake modul angka sing kalebu ing sawetara float. Nuansa penting 2. 10³⁸ kira-kira padha karo 2¹²⁷ , masing-masing, 10 ˉ³⁸ kira-kira padha karo 2ˉ¹²⁷ . Mangkono, interval nilai absolut saka angka float bisa ditulis minangka [3.4 * 2ˉ¹²⁷; 3,4 * 2¹²⁷). Tipe dobel njupuk memori komputer kaping pindho -64 bit lan bisa nampa angka desimal ing kisaran [-1.7E+308; 1.7E+308) . 4.2 Bentuk normalisasi eksponensial saka angka biner. We ngerti sing nomer disimpen ing wangun binar ing memori komputer. Dadi, ayo njupuk nomer 1560.256 (jinis ngambang) lan ngonversi menyang sistem binar ing wangun posisi: 11000011000.01000001100 . Sampeyan bisa uga mikir yen iki bakal disimpen ing memori komputer. Nanging kuwi ora bener! Ing memori komputer, jinis float lan dobel ( tipe floating-point nyata ) disimpen ing wangun normalisasi eksponensial , nanging basis daya 2 tinimbang 10. Iki amarga kasunyatan sing, kaya kasebut ing ndhuwur, kabeh data ing komputer diwakili ing wangun binar (bit). A jumlah tartamtu saka memori komputer diparengake kanggo nomer. Ayo makili angka positif 15.2 ing wangun eksponensial normal: 1.52*10¹ . Sabanjure, ayo makili biner "kembar" 1111.00110011001 uga ing notasi normalisasi eksponensial, nggunakake algoritma sing padha: 1) Basis bakal padha karo 2 2) Mantissa bakal padha karo 1.11100110011001 3) Gelar bakal dadi positif lan padha. (titik dipindhah 3 bit ngiwa) ing sistem desimal. Ayo diowahi dadi sistem biner: 11 . Dadi ing wangun normalisasi eksponensial biner bakal dadi 1.11100110011001 * 2¹¹. 4.3 Nyimpen wangun biner sing dinormalisasi eksponensial saka nomer float ing memori komputer. Dadi, kita ngerteni manawa nomer nyata bakal disimpen ing memori komputer ing wangun biner sing dinormalisasi eksponensial . Carane bakal katon ing memori? Ayo njupuk jinis float . Komputer nyedhiyakake 32 bit kanggo saben nomer float . Padha disebarake kaya ing ngisor iki . Tokoh iki kanthi skematis nuduhake memori sing diparengake kanggo nomer float 32-bit ing komputer. AJA MACA :))) Nomer nyata ing memori komputer.  ING PENGEMBANGAN!!!  - 5 Nomer bit dituduhake kanthi warna abang . Green nuduhake Piece saka memori diparengake (1 dicokot) kanggo nyimpen tandha nomer. Kuning nuduhake Piece saka memori diparengake kanggo nyimpen daya pindah (urutan) saka wangun eksponensial saka nomer (8 bit). Birunuduhake Piece saka memori diparengake kanggo nyimpen mantissa normal saka nomer tanpa unit implisit (23 bit). Ayo dideleng kanthi cetha. 1) Teken bit. Paling pinunjul (pisanan saka kiwa) dicokot tansah diparengake kanggo nyimpen tandha saka nomer (1 yen nomer negatif, lan 0 yen nomer positif). Pangecualian bisa uga nomer nol - ing pemrograman, nol bisa uga negatif lan positif . 2) Sabanjure teka bit derajat (urutan) saka eksponen karo basis 2 . Kanggo iki, 8 bit diparengake. Derajat eksponen saka angka float , kaya sing kita ngerti, bisa uga negatif (kanggo nomer sing bagean integer 0, deleng paragraf 3.3) lan positif (kanggo nomer sing bagean integer beda karo nol) lan kisaran saka 2ˉ¹²⁷ nganti 2¹²⁷ . Ing teori, kita kudu ngalokasikan siji bit kanggo nemtokake tandha eksponen, kayadene karo bit tandha. Nanging kuwi ora bener. Supaya ora sampah sethitik kanggo nemtokake tandha saka exponent, nomer float nambahi offset kanggo exponent setengah bait +127 (0111 1111). Dadi, tinimbang sawetara kekuwatan saka 2ˉ¹²⁷ nganti 2¹²⁷, komputer nyimpen sawetara kekuwatan saka 0 nganti +254 - kabeh nilai daya positif , ora perlu mbuwang bait ekstra ing tandha kasebut. Pranyata nilai eksponen digeser setengah saka nilai sing bisa ditindakake. Iki tegese kanggo entuk nilai nyata eksponen, sampeyan kudu nyuda offset iki saka nilai sing disimpen ing memori. Yen nilai eksponen sing disimpen ing memori kurang saka offset (+127), banjur eksponen negatif: iki logis. Tuladha. Ayo nindakake shift saka derajat negatif -18 . Kita nambah offset +127, entuk nilai derajat +108 (aja lali gelar 0 ing pitungan). Ayo dadi ngowahi jurusan menyang wangun binar: 1101100 Nanging 8 bit memori diparengake kanggo gelar, lan kene kita njaluk nomer 7-dicokot. Ing panggonan kosong, unoccupied dhuwur digit (bit), komputer nambah 0. Asil punika gelar iki bakal disimpen ing memori komputer minangka 01101100 . Delengen: +108 < +127, tegese gelar kasebut pancen negatif. Coba tabel menarik ing ngisor iki: Iki nuduhake kabeh kemungkinan nilai kekuwatan saka wangun normalisasi nomer float ing sistem biner lan desimal. Minangka kita bisa ndeleng, ing sistem binar +127 persis setengah saka kabèh bait (8 bit). 3) Sisa 23 bit disimpen kanggo mantissa AJA MACA :))) Nomer nyata ing memori komputer.  ING PENGEMBANGAN!!!  - sewelas. Nanging kanggo mantissa biner sing dinormalisasi, bit sing paling signifikan (alias bagean integer saka mantissa sing dinormalisasi) mesthi padha karo 1 (disebut implisit ), amarga jumlah mantissa dumunung ing kisaran 1<=M<2 (lan uga ngelingi paragraf 2.1.1 ceramah). Istiméwa mung nomer 0. Ora ana gunane nulis unit menyang 23 bit sing diparengake lan mbuang memori, supaya sisa mantissa (bagean pecahan) ditulis ing 23 bit sing diwenehake. Pranyata metu sing ateges bagean pinunjul saka nomer float wis dawa 24, kang siji dicokot kurang disimpen. Nuansa penting. Elinga yen nalika ngowahi angka pecahan desimal dadi angka biner, bagean pecahan ing sistem biner asring dadi gedhe. Lan kita mung duwe 32 bit kanggo nyimpen nomer float. Ing kasus iki, paling, paling pinunjul digit saka pecahan binar (elinga paragraf 2.1.2 saka kuliah iki) ora bakal klebu ing memori sing diparengake lan komputer bakal nglirwakake . Akurasi nomer kasebut bakal ilang , nanging, sampeyan ndeleng, minimal. Ing tembung liyane, presisi ngambang pecahan yaiku 6-7 desimal. 4.4 Nyimpen wangun biner normalisasi eksponensial saka nomer pindho ing memori komputer. Nomer nyata saka jinis pindho disimpen ing memori komputer ing cara sing padha karo nomer float, kajaba sawetara ciri. Nomer pindho duwe 64 bit ing memori komputer. Disebarake kaya ing ngisor iki (uga saka kiwa menyang tengen): 1) Tandha bit (pirsani paragraf 4.3). Kita ngerti manawa jumlah bit iki bakal dadi 63 . 2) Gelar (urutan). Nomer pindho diparengake 11 bit kanggo nyimpen . Pergeseran gelar uga ditindakake , nanging kanggo nomer pindho bakal padha karo +1023. 3) Mantissa (bagean pinunjul). Nomer pindho diparengake 52 bit (digit) kanggo nyimpen. Uga, bagean integer sing tepat saka mantissa ( unit implisit ) ora disimpen ing memori . Sampeyan uga kudu dicathet yen presisi ganda pecahan kira -kira 16 panggonan desimal . 4.5 Conto makili nomer nyata saka sistem desimal ing memori komputer. Lan titik pungkasan saka kuliah kita bakal dadi conto ngowahi nomer pecahan saka sistem nomer desimal menyang wangun panyimpenan ing memori komputer kanggo consolidate pangerten topik. Tuladha 1. Njupuk nomer-4.25 jinis ngambang. Ayo saiki ditampilake ing wangun normalisasi eksponensial ing sistem angka biner, ngelingi kabeh sing dibahas ing kuliah iki. 1) Ngonversi bagéan integer saka nomer menyang wangun binar: 4/2 = 2 (sisa divisi 0 ) 2/2 = 1 (sisa divisi 0 ) Bagean integer bakal padha karo 100 ing sistem binar. 2) Ngonversi bagean pecahan saka nomer menyang wangun biner. 0,25 * 2 = 0,5 ( 0 ) 0,5 * 2 = 1,0 ( 1 ) Bagean pecahan bakal padha karo 0,01 ing sistem biner. 3) Dadi, -4,25₁₀ = -100,01₂ . 4) Ayo ngowahi angka -100.01₂ dadi wangun normalisasi eksponensial ing sistem angka biner (sing tegese basis daya bakal dadi 2). -100.01₂ = -1.0001 *2² Ayo ngowahi nilai derajat saka format desimal menyang biner . 2/2 = 1 (sisa 0 ) Derajat 10₂. Kita entuk nomer -4.25₁₀ ing wangun normalisasi eksponensial binar bakal padha karo -1.0001 * 2¹º Ayo nulis kepiye carane katon ing memori komputer. Bit tandha bakal dadi 1 (nomer negatif). Offset ekspresi padha karo 2 + 127 = 10000001₂ Kita mbusak salah siji saka Mantu , kita entuk 00010000000000000000000 ( kita isi bit urutan sing ora ana gandhengane karo zeros ). Garis ing ngisor. 1 10000001 0001000000000000000000000000000000000000000000000000000000000000000000000 - Iki carane nomer -4.25 disimpen ing memori komputer. Conto 2. Ngonversi angka float 0.75₁₀ dadi format panyimpenan binar ing memori komputer. Asil kudu 0 01111110 100000000000000000000000 . Matur nuwun kanggo perhatian.
Komentar
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION