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 ကြိုးများအပေါ် အခြေခံ. အနုတ်လက်ခဏာနံပါတ်များကိုသင်လုပ်ဆောင်ရန်လိုအပ်ပါကဖြည့်စွက်ထားသောကုဒ်ကိုသင်ကိုယ်တိုင်အကဲဖြတ်ခြင်းနှင့်ပြောင်းလဲခြင်းကိုကိုယ်တိုင်ကိုယ်ကျအကောင်အထည်ဖော်ရမည်။ ရိုးရှင်းတဲ့နည်းလမ်းကတော့
အမြင့်ဆုံး bit ကိုဆုံးဖြတ်ပါ
အကယ်. နံပါတ်သည်အနုတ်လက်ခဏာဖြစ်ပါက၎င်းကိုဖြည့်စွက်ထားသောကုဒ်သို့ပြောင်းလဲလိမ့်မည်။
နမူနာကုဒ်သည်အောက်ပါအတိုင်းဖြစ်သည် -
<?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 () သည် မှန်ကန်သောအနုတ်လက်ခဏာတန်ဖိုးများကိုတိုက်ရိုက်မပေးနိုင်ပါ, သူ့ဟာသူအပိုလုပ်ဆောင်ရန်လိုအပ်သည်။
အမြင့်ဆုံးအမြင့်ဆုံးကိုအကဲဖြတ်ခြင်းနှင့်ဖြည့်စွက်တွက်ချက်မှုကိုပေါင်းစပ်ခြင်းဖြင့်အနုတ်လက်ခဏာနံပါတ်များကိုမှန်ကန်သောပြောင်းလဲခြင်းကိုရရှိနိုင်ပါသည်။