ဖွဲ့စည်းခြင်း, ကောလိပ်နှင့်တက္ကသိုလ်များ
တစ်ဦးရေပေါ်အမှတ်အရေအတွက်ကဘာလဲ?
(ထိုအင်္ဂလိပ်စကားပြောနိုင်ငံများအတွက်ဓလေ့ထုံးတမ်းသည်အတိုင်း, ဖြစ်ကောင်းအချက်) သူတို့တစ်တွေ mantissa နှင့်ထပ်ကိန်းအဖြစ်သိမ်းဆည်းထားရှိရာအစစ်အမှန် (သို့မဟုတ်အစစ်အမှန်) နံပါတ်များကို၏တင်ဆက်မှု, အမှတ်နံပါတ်များကို floating နေကြသည်။ ဒီနေသော်လည်းအရေအတွက်ကတစ်ဦး fixed ဆွေမျိုးတိကျမှန်ကန်မှုနှင့်အတူပေးအပ်နှင့်လုံးဝပြောင်းလဲနေပါတယ်။ ဟာ့ဒ်ဝဲနှင့်ဆော့ဖ်ဝဲနှစ်မျိုးလုံး - အများဆုံးမကြာခဏအသုံးပြုကြသည်သောကိုယ်စားပြုမှု, floating-point နံပါတ်များကိုစနစ်များကိုကွန်ပျူတာအတွင်းအကောင်အထည်ဖော်နေကြသည်ကိုအသုံးပြုစံကို IEEE 754. သင်္ချာစစ်ဆင်ရေးအတည်ပြုခဲ့သည်။
ပွိုင့်သို့မဟုတ်ကော်မာ
"မျောအချက်" - decimal separator များ၏အသေးစိတ်စာရင်းအဲဒီနိုင်ငံတွေမှာ၏ဝေါဟာရများအမှတ် floating နာမတော်ကိုအမှီ ပြု. မွေးစားသောကြောင့်, ဂဏန်းများ၏မှတ်တမ်းများ, တပြင်လုံးကိုအမှတ်တစ်ဒဿမကိန်းတစ်စိတ်တစ်ပိုင်းအားဖြင့်ကွဲကွာဘယ်မှာသူတွေကိုအင်္ဂလိပ်စကားပြောနိုင်ငံများနှင့် anglofitsirovannye, သတ်မှတ်။ ရုရှားဖက်ဒရေးရှင်း, အစဉ်အလာ၏မြေတပြင်လုံး၏ဒဿမကိန်းအစိတ်အပိုင်းတစ်ခုမှာတော့တစ်ကော်မာများကကွဲကွာ, ဒါကြောင့်တူညီသောအယူအဆသမိုင်းဟူသောဝေါဟာရကို "floating အချက်" အသိအမှတ်ပြုထားပါတယ်ကိုယ်စားပြုတယ်။ သို့သော်ယနေ့နည်းပညာပိုင်းဆိုင်ရာစာရွက်စာတမ်းများနှင့်ရုရှားစာပေ၌နှစ်ဦးစလုံးအတွက်ရွေးချယ်စရာများခွင့်ပြုခဲ့ခြင်းဖြစ်သည်။
အဆိုပါလိုင်းများနံပါတ်များအကြားဘယ်နေရာမှာမဆို fit နိုငျကွောငျး - ဟူသောဝေါဟာရမှာ "floating အချက်" ဟု positional အရေအတွက်ကိုကိုယ်စားပြုနေတဲ့ကော်မာ (ကကွန်ပျူတာပုံမှန်ဒဿမသို့မဟုတ်ဒွိ) ဖြစ်ပါသည်ဆိုတဲ့အချက်ကိုထံမှဝေါဟာရဖြစ်ပါတယ်။ ဒီ feature သီးခြားစီကဖော်ပြထားရမည်ဖို့သေချာပါသည်။ ဤသည်ရေပေါ်အမှတ်ဂဏန်း၏ကိုယ်စားပြုမှုအဆသင်္ကေတတစ်ခုကကွန်ပျူတာအကောင်အထည်ဖော်မှုအဖြစ်မှတ်နိုင်ပါတယ်ဆိုလိုသည်။ ကြောင်းဆွေမျိုးတိကျမှန်ကန်မှုကိုမပြောင်းလဲဖြစ်နေဆဲတဲ့အခါမှာတန်ဖိုးအကွာအဝေးသိသိသာသာကြီးထွားလာတဲ့ကိုယ်စားပြုမှု format ကို fixed-point များနှင့်ကိန်းဂဏန်း၏ထိုကဲ့သို့သောကိုယ်စားပြုမှုအသုံးပြုခြင်း၏အားသာချက်။
နမူနာ
ပုံသေ၏နံပါတ်အတွက်ကော်မာလျှင်, သူကတစ်ဦးတည်းသာ format တစ်ခုဖြစ်ပါတယ်မီးရှို့ရမည်။ ဥပမာ, ဒဿမကိန်းအစိတ်အပိုင်းအတွက်နံပါတ်ခြောက်နှစ်ခုဂဏန်းအနည်းငယ်ပေးတော်မူ၏။ ဤသည်သာဒီလမ်းအတွက်လုပ်ဆောင်နိုင်တယ်: 123456,78 ။ စကားရပ်များအတွက်အပြည့်အဝနယ်ပယ်ပေးခြင်းအမှတ်နံပါတ်များကို floating ၏ format နဲ့။ ဥပမာအားဖြင့်, တူရှစ်ဂဏန်းပေးတော်မူ၏။ အဆိုပါပရိုဂရမ်မာစုစုပေါင်းအရေအတွက်ကတစ်ဆယ် 8 + 2 ဖွစျလိမျ့မညျစဉ်ကပုံမှန်အားဖြင့် 10, နှင့် 0 မှ 16 ဖြစ်ကြောင်းကိန်းနှင့် discharges မှတ်တမ်းတင်လိမ့်မယ်တဲ့ Two-ဂဏန်း skimp တာဝန်အပိုဆောင်းလယ်လုပ်မပါဘူးဆိုရင်ရွေးချယ်စရာမှတ်တမ်းတင်ခြင်းမဆိုဖြစ်နိုင်သည်။
သငျသညျမျောအချက်နှင့်အတူနံပါတ်များကို format ရန်ခွင့်ပြုသည်သောအသံဖမ်း, အချို့သည်ဂျမြား: 12345678000000000000; 0,0000012345678; 123,45678; 1.2345678 ဒါပေါ်မှာ။ ဒီ format နဲ့, အမြန်နှုန်း၏တိုင်းတာခြင်းပင်တစ်ယူနစ်ရှိပါ! ယင်းအစားကွန်ပျူတာ floating အချက်နံပါတ်ကိုယ်စားပြုမှုအရပ်၌စစ်ဆင်ရေးလုပ်ဆောင်ပေးသောမှာမြန်နှုန်းမှတ်တမ်းတင်ထားတဲ့ကွန်ပျူတာစနစ်၏စွမ်းဆောင်ရည်ကို။ ဤသည်စွမ်းဆောင်ရည် (က floating အချက်နှင့်အတူတစ်စက္ကန့်ငွေကြေးလွှဲပြောင်းမှုမှာအရေအတွက်ဘာသာဖြစ်သောစက္ကန့်လျှင် floating-point စစ်ဆင်ရေး) လာသောသေတ္တာ၏စည်းကမ်းချက်များ၌တိုင်းတာသည်။ ဒါကတိုင်းတာခြင်းကွန်ပျူတာ system ကိုမြန်နှုန်းအတွက်အခြေခံယူနစ်ဖြစ်ပါတယ်။
ဖွဲ့စည်းပုံ
အောက်မှာဖေါ်ပြတဲ့အတိုင်းဤမှတ်တမ်းအဆဖြစ်ပါတယ်ကြောင့် floating အမှတ် format နဲ့ record အရေအတွက်ကိုတစ်ဦး mantissa နှင့်အမိန့်အတိုင်းအစစ်အမှန်နံပါတ်များကိုပြသသော, အမဖြစ်မနေအစိတ်အပိုင်းများ၏ sequence ကိုစောင့်ကြည့်, လိုအပ်သောဖြစ်ပါတယ်။ ဒါဟာသူတို့ဖတ်ရှုဖို့အများကြီးပိုလွယ်ဖြစ်ကြသည်ကြီးမားလွန်းခြင်းနှင့်သေးငယ်လွန်းနံပါတ်များကိုကိုယ်စားပြုရန်လိုအပ်ပေသည်။ လိုအပ်သောအစိတ်အပိုင်းများ: အမှတ်တမ်းတင်ထားသောနံပါတ် (N) တို့က, mantissa (M), နိမိတ်လက္ခဏာ (p) နှင့်အမိန့် (ဎ) ၏အမိန့်။ နိမိတ်လက္ခဏာ၏နောက်ဆုံးနှစ်ခု features တွေ။ ထို့ကွောငျ့အ N ကို = အမ် ဎစ။ ဒါကြောင့်စာဖြင့်ရေးသား floating-point နံပါတ်များကို။ ဥပမာကွဲပြားလိမ့်မည်။
1. ဒါဟာ Zero အတွက်ဆုံးရှုံးခဲ့ရရမဟုတ်သကဲ့သို့, တစ်သန်း၏နံပါတ်မှတ်တမ်းတင်ရန်လိုအပ်ပေသည်။ 1000000 - ကပုံမှန်အသံသွင်း, ဂဏန်းသင်္ချာသည်။ အောက်မှာဖေါ်ပြတဲ့အတိုင်းတစ်ဦးကကွန်ပျူတာဖြစ်ပါသည်: 1.0 ။ အောက်တိုဘာလ 6 ။ အဖြစ်အများအပြားခြောက်လအဖြစ် Zero အတွက် fit ရာသုံးခုဆိုင်းဘုတ်များ, - အကြောင်း, ဆဌမပါဝါဆယ်ဖြစ်ပါတယ်။ ထို့ကြောင့်ချက်ချင်းစာလုံးပေါင်းအတွက်ကွဲပြားခြားနားမှု detect နိုင်ပါတယ်ဘယ်မှာ fixed နှင့် floating point ရဲ့နံပါတ်ကိုယ်စားပြုမှုတွေ့ရှိနိုင်ပါသည်။
2. ထိုကဲ့သို့သောခက်ခဲအရေအတွက်ကလည်း 1,435,000,000 (တစ်ဘီလီယံလေးရာသုံးဆယ်ငါးထောင်) ဖြစ်ပါသည်ရိုးရှင်းစွာရေးသားနိုင်သည်ထားသော 1,435 ။ စက်တင်ဘာလ 10, သာ။ ဒါကြောင့်တစ်ဦးအနုတ်လက္ခဏာသက်သေနှင့်အတူမည်သည့်အရေအတွက်ကိုရေးသားနိုငျဖြစ်ပါတယ်။ ဒါကြောင့်ဖွင့်နှင့်ပုံသေနှင့် floating point ရဲ့နံပါတ်တစ်ခုချင်းစီကိုတခြားကနေကွဲပြား။
သို့သော်ထိုသို့အနိမ့်ဖြစ်ဖို့ဘယ်လိုပိုပြီးလား ဟုတ်ကဲ့, သိပ်လွယ်လွယ်ကူကူ။
တသန်းအမှတ်အသားအဖြစ်ဥပမာ 3. ? = 0.000001 1.0 ။ 10 -6 ။ ကိုအလွန် facilitated နှင့်အရေးအသားနံပါတ်များနှင့်ဖတ်ရှုခြင်း။
4. တစ်ဦးကပိုရှုပ်ထွေး? ငါးရာလေးဆယ်ဆဋ္ဌဘီလျံ: 0.000000546 = 546 ။ 10 -9 ။ ဒီနေရာတွင်။ ရေပေါ် point ရဲ့အကွာအဝေးကအရမ်းကျယ်ပြန့်သည်။
ပုံသဏ္ဌာန်
Form ကိုအရေအတွက်ကပုံမှန်သို့မဟုတ်ပုံမှန်ဖြစ်နိုင်သည်။ ပုံမှန် - အမြဲမျောအမှတ်ဂဏန်းများ၏တိကျလေးစား။ ဒါဟာ <1 ။ မဟုတ်က၎င်း၏တိကျမှန်ကန်မှုကိုရှုံး၏နံပါတ်၏ပုံမှန် form မှာ⩽ 0 င်ပြီးတော့, ဒီပုံစံအတွက် mantissa, အကောင့်ထဲသို့နိမိတ်လက္ခဏာကိုယူပြီးမရှိဘဲ, ကြားကာလ 0 င် 1 ၏ထက်ဝက်ကြောင်းကိုမှတ်သားရပါမည်။ ပုံမှန်ပုံစံများ၏အားနည်းချက်ကြောင့်စိတ်မကောင်းစရာဝေဝါးဖြစ်ပါတယ်, များစွာသောနံပါတ်များကိုကွဲပြားခြားနားတဲ့နည်းလမ်းတွေ၌ရေးထားလျက်ရှိ၏နိုင်ဖြစ်ပါတယ်။ 0 င် = 0.0001, 000001: တူညီသောအရေအတွက်ဥပမာကွဲပြားခြားနားသောမှတ်တမ်းများ။ ဖေဖော်ဝါရီလ 10 = 0.00001 ။ ဇန်နဝါရီလ 10 = 0.0001 ။ 10 0 င် = 0.001 ။ 10 -1 = 0.01 ။ 10 -2, ဒါကြောင့်အများကြီးပိုဖြစ်နိုင်သည်။ အဆိုပါကွန်ပျူတာသည် mantissa ဒဿမယင်းယူနစ်၏တန်ဖိုးယူဆရှိရာတစ်ဦးကွဲပြားခြားနားပုံမှန်သင်္ကေတ, (အားလုံးပါဝင်နိုင်) ကိုအသုံးပြုသည်နှင့်အရှင်တစ်ဆယ်မှ (မပါဝင်) နှင့်အတူတူပင်လမ်းထဲမှာ mantissa binary number ကို (အားလုံးပါဝင်နိုင်) တစျဦးအကြားတန်ဖိုးရှိပါတယ်ဒါကြောင့် (နှစ်ခုမှမဟုတ်ပါဘူး ) အားလုံးပါဝင်နိုင်။
ဒါကြောင့်, 1 ⩽တစ် <10 ဤသည် - ။ binary numbers များကို floating အချက်နှင့် (သုည မှလွဲ. ) မည်သည့်အရေအတွက်ကိုမှတ်တမ်းတင်၏ဤပုံစံကိုတစ်မူထူးခြားသောလမ်းဖမ်းယူ။ သုညဒီလိုမျိုးစိတ်ကူးဖို့နိုင်စွမ်းမရှိခြင်း - ဒါပေမယ့်လည်းအားနည်းချက်ရှိပါတယ်။ ထို့ကြောင့်ပညာပေးအထူးနံပါတ်များကို 0 င်သောနိမိတျလက်ခဏာ (နည်းနည်း) ၏အသုံးပြုမှုအတွက်ပေးပါသည်။ ပုံမှန် form မှာသုညမှတပါး binary number ကိုအတွက် mantissa ၏ (MSB) ၏ကိန်းအပိုင်း 1 (သွယ်ဝိုက်ယူနစ်) နှင့်ညီမျှသည်။ ဤမှတ်တမ်းစံကို IEEE 754. ခြေရင်းနှစ်ယောက်ထက်ပို (ternary, Quaternary နှင့်အခြားစနစ်များ) ဖြစ်ပါသည်ဌာန၏အဆိုပါ positional အရေအတွက်ကိုစနစ်, ကိုအသုံးပြုသည်, ဒီပစ္စည်းဥစ္စာပိုင်ဆိုင်မှုကိုဝယ်ယူခြင်းမရှိပါ။
စစ်မှန်သော
ရီးရဲလ် floating အချက်နှင့်အတူနံပါတ်များနှင့်ကတန်ဖိုးများနှင့်တိကျမှန်ကန်မှု၏အကွာအဝေးအကြားစေ့စပ်ညှိနှိုင်းခဲ့ကြသကဲ့သို့, တစ်ဦးတည်းသာပေမယ့်အမှန်တကယ်အရေအတွက်ကိုကိုယ်စားပြုဖို့အလွန်အဆင်ပြေလမျးမယ့်အဖြစ်အများအားဖြင့်ဖြစ်ကြသည်။ ဤသည်အဆသင်္ကေတမှအလားတူဖြစ်ပါသည်, သာကွန်ပျူတာပေါ်မှာဖျော်ဖြေခဲ့ပါတယ်။ Floating-point အရေအတွက်က - တစ်ဦးချင်းစီ-bits အစုတခုကဖြစ်သောနိမိတ်လက္ခဏာ (နိမိတ်လက္ခဏာ), အမိန့် (ထပ်ကိန်း) နှင့် mantissa (mantis) သို့ခွဲခြားထားတယ်။ - အသုံးအများဆုံးပုံစံသည်၎င်း၏ mantissa, အခြားအစိတ်အပိုင်းတစ်ရပ်၏အစိတ်အပိုင်းတစ်ခုဝှက်ကြောင်း-bits အစုတခုအဖြစ်ကို IEEE 754 floating-point အရေအတွက်ကသည်ဒီဂရီနှင့်တဦးတည်းနည်းနည်းအရေအတွက်ကို၏လက္ခဏာသက်သေညွှန်ပြ: သုည - ကအပြုသဘောပါလျှင်, ယူနစ် - အရေအတွက်ကအနုတ်ပါ။ ပုံမှန် form မှာ၎င်း၏ဒဿမကိန်းအစိတ်အပိုင်းတစ်ခု - - ထို binary system ထဲမှာတစ်ခုလုံးကိုလုပ်ထုံးလုပ်နည်းနံပါတ် (ကုဒ်-ပြောင်းကုန်ပြီ), နှင့် mantissa ကမှတ်တမ်းတင်ထားသည်။
တစ်ခုချင်းစီကိုနိမိတ်လက္ခဏာကို - အားလုံး floating-point နံပါတ်များကိုများအတွက်နိမိတ်လက္ခဏာကိုညွှန်ပြကြောင်းတစ်ခုတည်း bit နဲ့ဖြစ်ပါတယ်။ Mantissa နှင့်အမိန့် - ကိန်းများမှာသူတို့က, နိမိတ်လက္ခဏာနှင့်အတူနှင့်ရေပေါ်အမှတ်ဂဏန်း၏ကိုယ်စားပြုမှုပါစေ။ အဆိုပါလုပ်ထုံးလုပ်နည်းတခုအဆသို့မဟုတ်ထပ်ကိန်းဟုခေါ်တွင်စေနိုင်ပါတယ်။ အားလုံးကတော့အစစ်အမှန်နံပါတ်များကိုအခြားသူများအနီးစပ်ဆုံးတန်ဖိုးများကိုတင်ပြကြသည်, သူတို့ရဲ့အတိအကျအဓိပ်ပာယျကွန်ပျူတာတစ်လုံးအတွက်ကိုယ်စားပြုနိုင်ပါတယ်။ တစ်ဦးကအများကြီးရိုးရှင်းတဲ့ option ကို - အစစ်အမှန်နှင့်တပြင်လုံးကိုစိတျအပိုငျးသီးခြားထားရှိမည်ပါလိမ့်မည်ဘယ်မှာသတ်မှတ်ထားတဲ့အချက်နှင့်အစစ်အမှန်အရေအတွက်ကတင်ပြရန်။ Y က-bits - အများစုမှာဖွယ်ရှိ, ဒါကြောင့်ကိန်းအစိတ်အပိုင်းတစ်ခုအစဉ်အမြဲ X ကို-bits နှင့်ဒဿမကိန်းချထားပေးခြင်းဖြစ်သည်။ သို့သော်ပရိုဆက်ဆာများ၏ဗိသုကာထိုကဲ့သို့သောနည်းလမ်းသတိထားမဟုတ်, preference ကိုရေပေါ် point ရဲ့အရေအတွက်ပေးသောကြောင့်။
ထို့အပြင်
ရေပေါ်အချက်နံပါတ်ထို့အပြင်အတော်လေးရိုးရှင်းပါသည်။ ယင်းကို IEEE 754 စံနှုန်းတစ်ခုတည်းတိကျစွာအရေအတွက်ကိုနှင့် ဆက်စပ်. က-bits ၏ကြီးမားသောအရေအတွက်ကရှိပါတယ်, ဒါကြောင့်အသေးဆုံး floating-point အရေအတွက်အားယူမှပိုကောင်းတဲ့စိတ်ကူးနှင့်တကွ, ဥပမာစရွှေ့ဖို့ သာ. ကောင်း၏။ ဥပမာအားဖြင့်, နှစ်ခုနံပါတ်များ - X နှင့် Y.
| ပွောငျးလဲတတျသော | အမှတ် | ထပ်ကိန်း | mantissa |
| X ကို | 0 င် | 1001 | 110 |
| Y က | 0 င် | 0111 | 000 |
အောက်မှာဖေါ်ပြတဲ့အတိုင်းခြေလှမ်းနေသောခေါင်းစဉ်:
က) နံပါတ်များကိုပုံမှန် form မှာကိုယ်စားပြုရမည်ဖြစ်သည်။ ဒါဟာရှင်းရှင်းလင်းလင်းတစ်ဦးက hidden တစ်ခုဖြစ်ပါသည်။ X ကို = 1,110 ။ 2 2, နဲ့ Y = 1000 ။ 2 0 ။
ခ) ဖွဲ့စည်းမှု၏လုပ်ငန်းစဉ်ကိုသာပြသခဲ့သည်ညီမျှနိုင်ပါတယ် Continue ပေမယ့်ဒါဟာတကယ်တော့ပေမယ့်ပုံမှန်နံပါတ်များ, ၏တန်ဖိုးကိုက်ညီတဲ့လိမ့်မယ် Y. ၏တန်ဖိုးကိုပြန်ရေးရန်လိုအပ်ပါသည် - unnormalizes ။
အခုတော့အရှင်လက်ဝဲနှစ်ခုအချက်များမှာကော်မာက hidden ယူနစ်ရွေ့လျား, ဒုတိယသက်တမ်း၏အညွှန်းကိန်း 2 add ကြောင်းဖြစ်ပါသည်, ဤပြောင်းလဲဘို့လျော်ကြေးပေးဖို့ mantissa ရွှေ့ = 2. 0 င် - ဒီဂရီ 2 ၏ကိန်းများအကြားခြားနားချက်ကိုတွက်ချက်။ 0,0100 ရယူသည်။ ဖေဖော်ဝါရီလ 2 ။ ဤသည်ထို့နောက် Y ကို '' ပြီးသားလည်းမရှိ, ယခင်တနျဖိုးက Y နှင့်ညီမျှဖြစ်လိမ့်မည်။
ဂ) ယခုသင်သည်ချိန်ညှိ mantissa X နှင့် Y. ၏နံပါတ်အထိထည့်ရန်လိုအပ်ပါတယ်
1,110 + 0,01 = 10,0
ပြသခဲ့သည်နေဆဲ 2 ညီမျှသောက X parameter သည်ဖြင့်ကိုယ်စားပြုထားသည်။
ဆ) ယခင်ခြေလှမ်းအတွက်လက်ခံရရှိသောအဆိုပါငွေပမာဏသည်ပုံမှန်ယူနစ်ပြောင်းလဲ, ထို့နောက်သင်ထပ်ကိန်းပေါင်းလဒ်နှင့်ထပ်ရွှေ့ဖို့လိုအပ်ပါတယ်။ အဆိုပါဒဿမ point ရဲ့လက်ဝဲဘက်နှစ်ခု-bits နှင့်အတူ 10,0, အရေအတွက်ကယခုပုံမှန်ရန်လိုအပ်ပါသည်, ဆိုလိုသည်မှာယင်းဒါဟာ 1000 ထွက်လှည့်, အသီးသီးတဦးတည်းအချက်နှင့်ထပ်ကိန်းအားဖြင့်ကျန်ရစ် 1. တိုးဖို့ကော်မာရွှေ့။ မတ်လ 2 ။
င) ဒါဟာ Single-byte စနစ်ကတစ်ဦးရေပေါ်အမှတ်အရေအတွက်ကိုပြောင်းအချိန်ဖြစ်ပါသည်။
| ငှေပေါငျး | အမှတ် | ထပ်ကိန်း | mantissa |
| X + ကို Y ကို | 0 င် | 1010 | 000 |
ကောက်ချက်
သင်တို့ကိုတွေ့မြင်နိုင်သကဲ့သို့ဤနံပါတ်များကိုထပ်ထည့်, ခက်လွန်းကော်မာရှိသတဲ့တစုံတခုကိုမျှမရှိကြပေ။ သင်တန်း၏, မဟုတ်လျှင်, နိမ့်ကျပိုအကြားထပ်ကိန်း (အထက်ပါဥပမာထဲမှာ, က X ကိုဖို့ Y ကိုခဲ့ပါတယ်), အဖြစ်ပိုနေမြဲကျားနေမြဲအခြေအနေကို၏ပွနျလညျထူထောငျသူအရေအတွက်ယူလာဘို့အ မှလွဲ. လျော်ကြေးငွေ၏ပြဿနာ ie - ထို mantissa ၏လက်ဝဲဖို့ဒဿမအမှတ်ရွှေ့။ သူတို့ရဲ့အရေအတွက်ကကိုယ်စားပြုအရေအတွက်ကိုမကိုက်ညီလျှင် perenormirovanie နှင့်ခြင်းကို bit နဲ့ - ထို့အပြင်ပြီးသားလျှောက်ထားခဲ့ပြီးသည့်အခါအလွန်ဖြစ်နိုင်သောနှင့်နေဆဲတဦးတည်းကပြဿနာဖြစ်ပါတယ်။
မြှောက်
binary စနစ် floating-point နံပါတ်များကိုတို့ကိုများပြားစေတော်မူသောအားဖြင့်နှစ်ခုနည်းလမ်းများပေးထားပါတယ်။ ဤသည်တာဝန်အနည်းဆုံးသိသိသာသာ-bits နှင့်ပြီးသောမြှောက်ကိန်း၌မြင့်အမိန့်-bits နှင့်အတူစတင်နှင့်အတူစတင်ရာမြှောက်ဖြင့်ဖျော်ဖြေနိုင်ပါသည်။ နှစ်ဦးစလုံးရောဂါဖြစ်ပွားမှုဆင့်ကဲတစ်စိတ်တစ်ပိုင်းထုတ်ကုန် stacking စစ်ဆင်ရေး၏နံပါတ်ဆံ့။ ဤရွေ့ကားစစ်ဆင်ရေးမြှောက်ကိန်း-bits များထို့အပြင်ကထိန်းချုပ်ထားရသည်။ အဆိုပါမြှောက်ကိန်း၏-bits များထဲမှတစ်ဦးယူနစ်လျှင်ဒါသည်, multiplicand ၏တစ်စိတ်တစ်ပိုင်းထုတ်ကုန်များ၏ပေါင်းလဒ်တစ်သက်ဆိုင်ရာပြောင်းကုန်ပြီနှင့်အတူပေါက်နေသည်။ အဆိုပါ multiplicand ဆက်ပြောသည်မဟုတ်ပါနေစဉ်မြှောက်ကိန်းတစ်ဂဏန်း, သုညတိတ်တဆိတ်ဝင်ရောက်ခဲ့လျှင်။
မြှောက်ရုံနှစျခုနံပါတ်များကိုဖျော်ဖြေသည်ဆိုပါက၎င်း၏ငွေပမာဏအတွက်ဂဏန်း၏ထုတ်ကုန်ထက်ပိုမိုနှစ်ကြိမ်, ထိုအချက်များတွင်ပါရှိသောဂဏန်း၏နံပါတ်ထက်မကျော်လွန်နိုင်, နဲ့ကြီးမားတဲ့နံပါတ်များကိုများအတွက်အလွန်အလွန်များစွာပါပဲ။ တချို့အရေအတွက်အားဖြင့်များပြားစေလျှင်, ထုတ်ကုန်မျက်နှာပြင်ပေါ်ရှိ fit မစွန့်။ မည်သည့်ဒစ်ဂျစ်တယ်စက်-bits များ၏အရေအတွက်သည်အလွန်ကနျ့ဖြစ်တယ်, ဒါကြောင့်မြွေဆိုးဂဏန်းများ၏နှစ်ကြိမ်အရေအတွက်အများဆုံးဖြစ်စေအကျဉ်းချထားရန်တွန်းအားပေးသောကွောငျ့ဖွစျသညျ။ ထိုအသောနေရာများ၏နံပါတ်ထုတ်ကုန်အတွက်ကန့်သတ်ပါလျှင်မလွှဲမရှောင်အမှားများကိုမိတ်ဆက်ပေးပါလိမ့်မယ်။ တွက်ချက်မှုပမာဏ, ထပ်နေသည်ကို၏အမှားကြီးမားသည်နှင့်ရလဒ်အဖြစ်အလွန်ခြုံငုံတိကျမှန်ကန်မှုကိုတိုးပွားစေပါသည်။ အကယ်. ဒီနေရာမှာတစ်ခုတည်းသောနည်းလမ်း - ကမြှောက်ရလဒ်များကိုပတ်လည်၌ရန်, ထို့နောက်အမှားအကျင့်ကိုကျင့်ပြောင်းခဲ့ကြသည်။ အခါမြှောက်စစ်ဆင်ရေး fixed-point ရဲ့ပုံစံကိုကိုယ်စားပြုထားတဲ့၏နံပါတ်ပေါ်ချမှတ်ထားတဲ့ကန့်သတ်စရာရှိသောကြောင့်, က, ဂဏန်းများ၏ဇယားကွက်ကျော်လွန်ပေမယ့်ကိုသာအငယ်အားဖြင့်သွားကြဖို့ဖြစ်နိုင်သမျှဖြစ်လာသည်။
အချို့သောရှင်းလင်းချက်
ပိုကောင်းတဲ့ရှေ့ဦးစွာ မှစ. စတင်ပါရန်။ အဆိုပါကော်မာအလွန်အဆုံး၌အဓိပ်ပာသည်အဘယ်မှာရှိတစ်ဦး integer ဖြစ်တဲ့အတွက်ကြောင့်လိုင်းနံပါတ်များကို - အရေအတွက်ကိုကိုယ်စားပြုအသုံးအများဆုံးနည်းလမ်းဖြစ်သည်။ ဒါဟာ string ကိုမဆိုအရှည်နိုင်ပါတယ်, ဒါပေမယ့်တစ်ကော်မာ၏ဒဿမကိန်းအစိတ်အပိုင်းတစ်ခုအနေဖြင့်ကိန်းခွဲထုတ်ပြုလုပ်ထားရန်ညာဘက်အရပျ၌ရပ်။ အဆိုပါ fixed-point စနစ်၏တင်ဆက်မှု၏ပုံစံကိုသေချာပေါက်အဆိုပါဒဿမ point ရဲ့တည်နေရာအပေါ်အချို့သောအခြေအနေများတတ်၏။ သိပ္ပံနည်းကျသင်္ကေတဂဏန်း၏ကိုယ်စားပြုမှုတစ်ဦးစံပုံမှန်အမြင်အသုံးပြုသည်။ ဒါဟာ aqn {\ displaystyle aq ^ {n }} aq ဎ။ ဒီနေရာမှာတစ်ဦး {\ displaystyle တစ်ဦး} တစ်ဦးနှင့်က mantissa ဇာ 'ဟုဆိုအပ်၏။ ကိုယ့်အကြောင်းကိုသူက 0 င်⩽တစ် ထို့ပြင်အားလုံးပြီးသားရှင်းရှင်းလင်းလင်းဖြစ်သင့်: ဎ {/ displaystyle ဎ} ဎ - တစ်ခုကိန်းထပ်ကိန်းနှင့်က q {/ displaystyle က q} က q - ကို radix ၏အခြေခံဖြစ်သောလည်းတစ်ခုကိန်း, (စာတစ်စောင်ကိုမကြာခဏ 10 ဖြစ်ပါတယ်) ။ Mantissa သုညမဟုတ်သောအရာကိုပထမဦးဆုံးဂဏန်း, ပြီးနောက်ကော်မာထားခဲ့ပါ, ဒါပေမယ့်နောက်ထပ်မှတ်တမ်းတင်အရေအတွက်ကို၏လက်ရှိတန်ဖိုးပေါ်တွင်သတင်းအချက်အလက်လွှဲပြောင်းဖြစ်ပါတယ်။
Floating-point အရေအတွက်ကသာအထပ်ကိန်းနှင့် mantissa သီးခြားစီမှတ်တမ်းတင်ထားသောနေကြတယ်, အားလုံးရှင်းရှင်းလင်းလင်းစံ entry ကိုနံပါတ်များကိုမှအလွန်ဆင်တူရေးသားခဲ့သူဖြစ်ပါတယ်။ ပထမဦးဆုံးအသိသာဂဏန်းတွေနဲ့အလှဆင်ထားတဲ့ fixed အမှတ် - အတူတူပင်နှင့်တစ်ဦးပုံမှန် format နဲ့မှနောက်ဆုံး။ မပြီးနောက်, ဘယ်မှာကိန်းအစိတ်အပိုင်းတစ်ခု, ထို့နောက်မတိုင်မီယခုပထမဦးဆုံးဂဏန်းရှေ့မှာရှိ၏ - ရုံ floating အမှတ်ကွန်ပျူတာများတွင်အဓိကအားဖြင့်အသုံးပြုသည်, ထိုစနစ် decimal မဟုတ်ပါ binary, ဘယ်မှာပင် mantissa Denormalize ပြန်စီစဉ်အချက်ဘယ်မှာများ၏အီလက်ထရောနစ်ကိုယ်စားပြုမှုအတွက်ဖြစ်ပါသည် မူအရ, မဖြစ်နိုင်ပါ။ ဥပမာအားဖြင့်, ကျွန်တော်တို့ရဲ့ကိုယ်ပိုင်ဒဿမစနစ်ကယာယီအသုံးပြုရန်အတွက်မိမိအကိုး binary system ကိုပေးလိမ့်မယ်။ ထိုမှတ်တမ်းတင်ခြင်းနှင့်ဤကဲ့သို့သောက၎င်း၏ mantissa floating-point ပါလိမ့်မယ်: +1001000 ... 0, ထိုသို့နှင့်အညွှန်းကိန်း 0 င် ... 0100 ။ ဒါပေမယ့်ဒဿမ system ကို floating point ရဲ့ပုံစံကို အသုံးပြု. ဒွိအတွက်ဖြစ်ရသောထိုကဲ့သို့သောရှုပ်ထွေးသောတွက်ချက်မှု, ထုတ်လုပ်ရန်ပျက်ကွက်။
ရှည်လျားသောဂဏန်းသင်္ချာ
အီလက်ထရောနစ်ကွန်ပျူတာများအတွက် built-in ပါပွီဆော့ဖ်ဝဲများကိုသာကွန်ပျူတာ၏မှတ်ဉာဏ်အရွယ်အစားအားဖြင့်ကန့်သတ်ထားမှတ်ဉာဏ်သတ်မှတ်ထားသောဆော့ဖ်ဝဲပမာဏ၏ mantissa နှင့်ထပ်ကိန်းများအတွက်ခွဲဝေရှိရာ။ ထိုသို့ကွန်ပျူတာလုပ်ဆောင်ကြောင်း, နံပါတ်ပေါ်ရိုးရှင်းသောစစ်ဆင်ရေးဖြစ်ပါသည်, ရှည်ဂဏန်းသင်္ချာနဲ့တူလှပါတယ်။ အနုတ်နဲ့အပွငျ, ကွဲပြားခြင်းနှင့်မြှောက်, မူလတန်းလုပ်ဆောင်ချက်များကိုနှင့်အမြစ်များ၏ဆောက်လုပ်ရေး - ဒါဟာအားလုံးအတူတူပင်ဖြစ်ပါတယ်။ သို့သော်အလွန်ကွဲပြားခြားနား၏နံပါတ်, သူတို့ရဲ့စွမ်းရည်စက်စကားလုံးရဲ့အရှည်ထက်သိသိသာသာကြီးမြတ်တော်မူ၏။ ဤအစစ်ဆင်ရေး၏အကောင်အထည်ဖော်မှုဟာ့ဒ်ဝဲနှင့်ဆော့ဖ်ဝဲအားဖြင့်မဖြစ်ပေမယ့်အမိန့်တော်များများသေးငယ်နံပါတ်များနှင့်အတူအလုပ်လုပ်ရန်အသုံးများအခြေခံဟာ့ဒ်ဝဲဖြစ်ပါတယ်။ မတရားတိကျစွာဂဏန်းသင်္ချာ - ဂဏန်းအရှည်သာမှတ်ဉာဏ်စွမ်းရည်အားဖြင့်ကန့်သတ်ထားဘယ်မှာပိုမိုနှင့်ဂဏန်းသင်္ချာရှိပါသည်။ တစ်ဦးကရှည်လျားဂဏန်းသင်္ချာအများအပြားနယ်ပယ်များတွင်အသုံးပြုသည်။
1. အနိမ့်နည်းနည်းနက်ရှိုင်းအတူကုဒ် (ပရိုဆက်ဆာ, Microcontroller တွေ compile ရန် - 10-bit မှာမှတ်ပုံတင်နှင့်ရှစ်-bit မှာစကားလုံးအရှည်, က (Analog စ-to-ဒစ်ဂျစ်တယ် converter) To-ဒစ်ဂျစ်တယ်အင်နာလော့-မှသတင်းအချက်အလက်များကိုကိုင်တွယ်ရန်လုံလောက်သည်မဟုတ်, ထို့ကြောင့်ရှည်လျားသောဂဏန်းသင်္ချာမပါဘဲမလုပ်ဆောင်နိုင်ပါ။
2. ဒါဟာတာရှည်ဂဏန်းသင်္ချာက 10.309 မှအဆသို့မဟုတ်အကွိမျမြားစှာ၏ရလဒ်များ၏တိကျမှန်ကန်မှုကိုသေချာစေရန်လိုအပ်သောသည်အဘယ်မှာရှိ cryptography ကိုများအတွက်အသုံးပြုသည်လည်းဖြစ်ပါတယ်။ integer ဂဏန်းသင်္ချာ modulo မီတာကိုအသုံးပြုသည် - ကြီးမားသောသဘာဝအလျောက်, နံပါတ်နှင့်သေချာပေါက်ရိုးရှင်းသောမဟုတ်ပါဘူး။
အရမ်းဘဏ္ဍာရေးနှင့်ချာများအတွက် 3. Software များ, စက္ကူပေါ်တွက်ချက်မှု၏ရလဒ်များကိုအတည်ပြုရန်ကြောင့်တစ်ခုတည်းသောနည်းလမ်းတစ်ရှည်လျားသောဂဏန်းသင်္ချာမပါဘဲမဟုတ်ပါဘူး - ကွန်ပျူတာများ၏အကူအညီဖြင့်, နံပါတ်များမြင့်မားတိကျမှန်ကန်မှုကိုသေချာ။ Floating အမှတ်သူတို့ရှည်လျားဥတုကိုရေတွက်နိုင်ပါဝင်နိုင်ပါတယ်။ ဒါကြောင့်အမှားတွေလုပ်မပါဘဲ input ကိုဒေတာအောင်ရန်အလွန်ခက်ခဲသည်ဖြစ်သောကြောင့်ဒါပေမယ့်အင်ဂျင်နီယာတွက်ချက်မှုများနှင့်သိပ္ပံပညာရှင်များ၏လုပျငနျးအလွန်မကြာခဏဝင်ရောက်စွက်ဖက်မှုအစီအစဉ်ကိုတွက်ချက်မှုလိုအပ်သည်။ သူတို့များသောအားဖြင့်အများကြီးပိုပြီးအခွားရလဒ်များကိုရှာနိုင်ပါတယ်ထက်ဖြစ်ကြသည်။
မှားယွင်းမှုများနှင့်အတူ Fight
အရာအတွက် floating အမှတ်စစ်ဆင်ရေး၏နံပါတ်ကရလဒ်များ၏တိကျမှန်ကန်မှုကိုအကဲဖြတ်ရန်ရန်အလွန်ခက်ခဲသည့်အခါဖြစ်ပါသည်။ သေးဤပြဿနာကိုဖြေရှင်းရန်ကူညီပေးနိုင်လိမ့်မည်ဟုသမျှသင်္ချာသီအိုရီကျေနပ်တီထွင်မဟုတ်ပါဘူး။ သို့သော်အမှား integer ဖြစ်တဲ့အတွက်အလွယ်တကူအကဲဖြတ်ရန်။ မျက်နှာပြင်ပေါ်မှာတိတွေကိုဖယ်ရှားဖို့တဲ့များ၏ဖြစ်နိုင်ခြေ - ရုံ fixed-point သာနံပါတျကိုသုံးပါ။ ဥပမာ, ဘဏ္ဍာရေးအစီအစဉ်ကိုဒီနိယာမအပေါ်တည်ဆောက်ခဲ့သည်။ သို့သော်ရိုးရှင်းတဲ့ရှိပါတယ်: အဒဿမအမှတ်ပြီးနောက်ဂဏန်း၏လိုအပ်သောအရေအတွက်ကကြိုတင်မဲအတွက်လူသိများသည်။
သငျသညျအလွန်သေးငယ်တဲ့ဒါမှမဟုတ်အလွန်ကြီးမားနံပါတ်များကိုဖြစ်စေနှင့်အတူအလုပ်လုပ်လို့မရဘူးဘာဖြစ်လို့လဲဆိုတော့အခြား application, ကန့်သတ်မထားပါ။ သငျသညျအလုပ်မလုပ်တဲ့အခါမှာဒါသည်အမြဲတမ်းတိရှိစေခြင်းငှါအကောင့်သို့ယူလျက်, ရလဒ်များကို၏အနကျအဓိပ်ပါယျကြောင့်ပတ်လည်၌ရန်လိုအပ်သောကြောင့်။ ထိုမှတပါး, အော်တို Round မကြာခဏအရေးယူတစ်မရှိခြင်းဖြစ်ပါသည်, ထို့ကြောင့်ရှာနိုင်ပါတယ်အထူးသတ်မှတ်ထားသည်။ ဤအမှု၌အလွန်အန္တရာယ်များသည်နှိုင်းယှဉ်စစ်ဆင်ရေး။ ပင်အနာဂတ်အမှားအယွင်းများ၏ပမာဏအလွန်ခက်ခဲသည်ခန့်မှန်းရှိပါတယ်။
Similar articles
Trending Now