လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> Bindec () ကိုအပြုသဘောနှင့်အနှုတ်လက္ခဏာများအကြားခြားနားချက်ကိုကိုင်တွယ်ရန် () ကိုသုံးပါ

Bindec () ကိုအပြုသဘောနှင့်အနှုတ်လက္ခဏာများအကြားခြားနားချက်ကိုကိုင်တွယ်ရန် () ကိုသုံးပါ

M66 2025-06-02

PHP တွင် Bindec () function ကို binary strings များကိုဒ decimal မကိန်းများသို့ပြောင်းလဲရန်အသုံးပြုသည်။ ၎င်း၏ syntax သည်အလွန်ရိုးရှင်းပါသည်။

 int bindec ( string $binary_string )

$ binary_string သည် 0 နှင့် 1 သာပါ 0 င်သော string တစ်ခုဖြစ်ပြီး binary number ကိုကိုယ်စားပြုသည်။


အပြုသဘောဆောင်သောနံပါတ်အပြောင်းအလဲနဲ့

input binary string သည်အပြုသဘောဆောင်သောနံပါတ်ကိုကိုယ်စားပြုသည့်အခါ Bindec () သည်၎င်းကိုသက်ဆိုင်ရာဒ decimal မကိန်းသို့တိုက်ရိုက်ပြောင်းလဲလိမ့်မည်။ ဥပမာအားဖြင့်:

 <?php
echo bindec("1010");  // ထုတ်လုပ်ခြင်း 10
echo "\n";
echo bindec("1111");  // ထုတ်လုပ်ခြင်း 15
?>

ဤတွင် Binary strings "1010" နှင့် "1111" နှင့် "1111" ကိုဒ decimal မ 10 နှင့် 15 အသီးသီးသို့ပြောင်းလဲသွားသည်။ ၎င်းသည် Bindec () ၏အသုံးအများဆုံးအသုံးပြုမှုဖြစ်သည် () သည်မျှော်လင့်ထားသည့်အတိုင်းဖြစ်သည်။


အနုတ်လက်ခဏာနံပါတ်အပြောင်းအလဲနဲ့

လက်မှတ်ရေးထိုးထားသောကိန်း၏ကိုယ်စားပြုမှုနှင့်မတူဘဲ Bindec () function သည် binary string သည်အနှုတ်လက်ခဏာနံပါတ်ကိုကိုယ်စားပြုသည်ကိုအလိုအလျောက်ခွဲခြားသတ်မှတ်ခြင်းမရှိပါ။ ၎င်းသည် input ကိုဒ decimal မသို့ခေါ်ဆိုမှုမရှိသော binary number အဖြစ်ပြောင်းလဲပေးသည်။ ထို့ကြောင့်, အကယ်. သင်သည်အလှည့်အလိုက်အနုတ်လက်ခဏာနံပါတ်ကိုကိုယ်စားပြုသော (binary form) string ကိုဖြတ်သန်းသွားလျှင်ရလဒ်သည်အပြုသဘောဆောင်သောကိန်းကြီးတစ်ခုဖြစ်လိမ့်မည်။

ဥပမာအားဖြင့်:

 <?php
echo bindec("11111111");  // ထုတ်လုပ်ခြင်း 255,အစား -1
echo "\n";
echo bindec("10000000");  // ထုတ်လုပ်ခြင်း 128,အစား -128
?>

ဤနေရာတွင် "111111111" သည် 8 -bit လက်မှတ်ရေးထိုးထားသောကိန်းဂဏန်းများတွင် -1 ကို ကိုယ်စားပြု သည်။ အလားတူစွာ "10000000" သည် -128 တွင် 8-bit ဖြည့်စွက်ခြင်းဖြင့် -128 ဖြစ်သည်။ သို့သော် function ကို 128


အနုတ်လက်ခဏာနံပါတ်များကိုမည်သို့မှန်ကန်စွာကိုင်တွယ်နိုင်မည်နည်း။

Binary ကြိုးများအပေါ် အခြေခံ. အနုတ်လက်ခဏာနံပါတ်များကိုသင်လုပ်ဆောင်ရန်လိုအပ်ပါကဖြည့်စွက်ထားသောကုဒ်ကိုသင်ကိုယ်တိုင်အကဲဖြတ်ခြင်းနှင့်ပြောင်းလဲခြင်းကိုကိုယ်တိုင်ကိုယ်ကျအကောင်အထည်ဖော်ရမည်။ ရိုးရှင်းတဲ့နည်းလမ်းကတော့

  1. အမြင့်ဆုံး bit ကိုဆုံးဖြတ်ပါ

  2. အကယ်. နံပါတ်သည်အနုတ်လက်ခဏာဖြစ်ပါက၎င်းကိုဖြည့်စွက်ထားသောကုဒ်သို့ပြောင်းလဲလိမ့်မည်။

နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -

 <?php
function bindec_signed($bin) {
    $num = bindec($bin);
    $bits = strlen($bin);
    // အမြင့်ဆုံးအမြင့်ဆုံးဆုံးဖြတ်ရန်1(အနုတ်လက်ခဏာနံပါတ်အလံ)
    if ($bin[0] === '1') {
        // ဖြည့်ကုဒ်၏အနုတ်လက်ခဏာတန်ဖိုးကိုတွက်ချက်ပါ
        $num -= (1 << $bits);
    }
    return $num;
}

// စမ်းသပ်မှု
echo bindec_signed("11111111");  // ထုတ်လုပ်ခြင်း -1
echo "\n";
echo bindec_signed("10000000");  // ထုတ်လုပ်ခြင်း -128
echo "\n";
echo bindec_signed("01111111");  // ထုတ်လုပ်ခြင်း 127
?>

ဤလုပ်ဆောင်ချက်သည်အမြင့်ဆုံးအမြင့်ဆုံးကိုအကောင်အထည်ဖော်ရန်နှင့်အပြုသဘောဆောင်သည့်အပြုသဘောဆောင်ခြင်းနှင့်အပျက်သဘောဆောင်သောပြောင်းလဲမှုများပြုလုပ်ရန်ကုဒ်နံပါတ်၏သင်္ချာနိယာမကိုအသုံးပြုသည်။


အကျဉ်းချုပ်

  • အဆိုပါ bindec () function ကို default အနေဖြင့်လက်မှတ်မထားသောနံပါတ်များအဖြစ် binary strings များကိုအသုံးပြုသည်။

  • အနှုတ်ဂဏန်းများကိုကိုယ်စားပြုသောနှစ် ဦး အနက် 2 ခုကိုဖြည့်စွက်ရန် Bindec () သည် မှန်ကန်သောအနုတ်လက်ခဏာတန်ဖိုးများကိုတိုက်ရိုက်မပေးနိုင်ပါ, သူ့ဟာသူအပိုလုပ်ဆောင်ရန်လိုအပ်သည်။

  • အမြင့်ဆုံးအမြင့်ဆုံးကိုအကဲဖြတ်ခြင်းနှင့်ဖြည့်စွက်တွက်ချက်မှုကိုပေါင်းစပ်ခြင်းဖြင့်အနုတ်လက်ခဏာနံပါတ်များကိုမှန်ကန်သောပြောင်းလဲခြင်းကိုရရှိနိုင်ပါသည်။