လက်ရှိတည်နေရာ: ပင်မစာမျက်နှာ> နောက်ဆုံးရဆောင်းပါးများစာရင်း> PHP ကို ​​သုံး. ကိန်းဂဏန်းများရှိ Set Bits အရေအတွက်ကိုမည်သို့တွက်ချက်ရမည်နည်း

PHP ကို ​​သုံး. ကိန်းဂဏန်းများရှိ Set Bits အရေအတွက်ကိုမည်သို့တွက်ချက်ရမည်နည်း

M66 2025-06-20

Binary Code ဆိုတာဘာလဲ။

Binary Code သည်သတင်းအချက်အလက်သို့မဟုတ်အချက်အလက်များကိုကိုယ်စားပြုရန် binary number system ကိုအသုံးပြုသောစနစ်တစ်ခုဖြစ်သည်။ တန်ဖိုးများအားလုံးကိုကိုယ်စားပြုရန်များသောအားဖြင့် 0 နှင့် 1 နှစ်မျိုးသာအသုံးပြုသည်။ Binary code ထဲရှိနံပါတ်တစ်ခုစီကို BET (Binary Number ၏အတိုကောက်) ဟုခေါ်သည်။

Binary Code တွင်နံပါတ်တစ်ခုစီသည် 2 ၏စွမ်းအားကိုကိုယ်စားပြုသည်။ ညာဘက်နံပါတ် မှစတင်. 2 ၏စွမ်းအားကိုလက်ယာမှလက်ဝဲမှပါ 0 င်သည်။ ဥပမာအားဖြင့် 8-bit binary code တစ်ခုတွင်ညာဘက် bits သည် 2 0 (1) ကို ကိုယ်စားပြုသည်။

Binary နံပါတ်ဥပမာ

ဒ decimal မကိန်း 42 ကို binary code သို့ပြောင်းလဲကြပါစို့။ 42 ကို Binary to to to to to to transless သည်သုညဖြစ်လာသည်အထိကျန်၎င်းကို 2 ခုနှင့်ခွဲထားသည်။

ဒီနေရာမှာတစ်ဆင့်ချင်းအဆင့်ဆင့်ဖြစ်စဉ်တစ်ခုပါ။

အဆင့် 1 : 42 ÷ 2 = 21, ကျန်ရှိသော 0 သည် 0 ဖြစ်သည်

အဆင့် 2 : 21 ÷ 2 = 10, ကျန်ရှိသော 1 ဖြစ်ပါတယ်

အဆင့် 3 : 10 ÷ 2 = 5, ကျန်ရှိသော 0 င်ဖြစ်ပါတယ်

အဆင့် 4 : 5 ÷ 2 = 2, ကျန်ရှိသော 1 ဖြစ်ပါတယ်

အဆင့် 5 : 2 ÷ 2 = 1, ကျန်ရှိသော 0 င်ဖြစ်ပါတယ်

အဆင့် 6 : 1 ÷ 2 = 0, ကျန်ရှိသော 1 ဖြစ်ပါတယ်

Binary ကိုယ်စားပြုမှုကိုရရန်ကျွန်ုပ်တို့သည်အောက်ခြေတွင် (နောက်ဆုံးကျန်ရှိသော) နှင့်အောက်ခြေမှကျန်ရှိသောကိုဖတ်ပါ။ 42 အတွက် Binary Code သည် 101010 ဖြစ်သည်။ ထို့ကြောင့်ဒ decimal မကိန်း 42 ကို Binary Code တွင် 101010 အဖြစ်ကိုယ်စားပြုသည်။

setbit ကဘာလဲ?

Binary Code ၏အခြေအနေတွင် bits များကိုသတ်မှတ်ခြင်းသည် Biny နံပါတ်များကိုရည်ညွှန်းသည်။ အခြားတစ်ဖက်တွင်မူရှင်းလင်းသော bits သည် binary number (bit) ကိုရည်ညွှန်းသည်။

bit ဥပမာ setting

ဥပမာအားဖြင့်, Binary Code 101010 တွင်အစုသုံးခု (သက်ဆိုင်ရာအနေအထား) နှင့်ရှင်းလင်းသောနေရာသုံးခုရှိသည် (သက်ဆိုင်ရာအနေအထား) သုံးခုရှိသည်။

PHP Program: ကိန်းဂဏန်းများအတွက် Set Bits အရေအတွက်ကိုတွက်ချက်ပါ

နည်းလမ်း 1: ကိန်းဂဏန်းများအတွက်အားလုံး bits မှတဆင့် loop

ဤတွင်ကွင်းဆက်ဖြတ်သန်းမှုနည်းလမ်းကို အသုံးပြု. Set-bit အရေအတွက်ကိုတွက်ချက်သော PHP ကုဒ်နံပါတ်တစ်ပုဒ်ဖြစ်သည်။

<?php
// Function to get no of set bits in binary representation of positive integer n
function countSetBits($n)
{
    $count = 0;
    while ($n) {
        $count += $n & 1;
        $n > > = 1;
    }
    $ ရေတွက်ခြင်း,
}

// ယာဉ်မောင်းကုဒ်
$ နံပါတ် = 12;
Echo "$ နံပါတ်အတွက် setbits အရေအတွက် -" ။ toysetbits ($ နံပါတ်);
>

ထုတ်လုပ်ခြင်း

12: 2 အတွက် setbits အရေအတွက်

နည်းလမ်း 2: recursive နည်းလမ်း

Set-bits အရေအတွက်ကိုတွက်ချက်ရန် recursive method ကိုအသုံးပြုသော PHP ကုဒ်နံပါတ်တစ်ခုကိုဤတွင်ဖော်ပြထားသည်။

<?php
// PHP implementation of recursive approach to find the number of set bits
function countSetBits($n)
{
    // base case
    if ($n == 0)
        return 0;
    else
        // if last bit set, add 1 else add 0
        return ($n & 1) + countSetBits($n > > 1);
}

// ယာဉ်မောင်းကုဒ်
$ n = 123;
ECHO "$ n အတွက် setbits အရေအတွက် -" ။ toysetbits ($ n);
>

ထုတ်လုပ်ခြင်း

123 ရှိ Setbits အရေအတွက်: 6

အကျဉ်းချုပ်

အချုပ်အားဖြင့်ဆိုရလျှင်ကျွန်ုပ်တို့သည်ကိန်းဂဏန်းများတွင်သတ်မှတ်ထားသည့်အစု (1) အရေအတွက်ကိုတွက်ချက်ရန် (1) ၏နံပါတ်ကိုတွက်ချက်ရန် bits အားလုံးမှတဆင့် recursive နည်းလမ်းများနှင့် loop ကိုသုံးနိုင်သည်။ loop method တွင် loop ကို သုံး. ကိန်းဂဏန်းတစ်ခုစီကိုကျော်လွှားခြင်းပါဝင်သည်။ ကျနော်တို့အရေအတွက် 0 ဖြစ်လာသည်အထိကောင်တာ variable ကိုနှင့် iterate တစ်ခုအစအ ဦး အနေဖြင့် 0 င်သည်အထိကျွန်ုပ်တို့သည်အနည်းဆုံးသိသိသာသာစစ်ဆေးရန် Bitwise နှင့်စစ်ဆင်ရေးကိုသုံးရန် Bitwise နှင့် Operator ကိုအသုံးပြုသည်။ အကယ်. ၎င်းသည် 1 နှင့်ညီလျှင်ကောင်တာကိုကျွန်ုပ်တို့တိုးပွားစေသည်။ ထို့နောက်ကျွန်ုပ်တို့သည်နံပါတ်ကိုဂဏန်း 1 လုံးဖြင့်ရွှေ့ပါ။ ဤဖြစ်စဉ်သည် bits အားလုံးကိုစစ်ဆေးပြီးနောက်ဆုံးအရေအတွက်ကိုပြန်လည်ရောက်ရှိသည်အထိဆက်လက်တည်ရှိသည်။

recursive နည်းလမ်းများအတွက်ကျွန်ုပ်တို့သည် input ကိုအဖြစ်သတ်မှတ်သည့် recursive function ကိုသတ်မှတ်နိုင်သည်။ function ကိုအတွင်းပိုင်းမှာကျွန်ုပ်တို့သည် operator များနှင့်အနည်းဆုံးသိသိသာသာအနည်းငယ်စစ်ဆေးရန် 1 နှင့် 1 ကိုအသုံးပြုသည်။ 1 နဲ့ညီမယ်ဆိုရင်ကောင်တာတိုးလာလိမ့်မယ်။ ထို့နောက်နံပါတ်ကိုညာဘက်ကို 1 bit ဖြင့်ရွှေ့။ အသစ်ပြောင်းထားသောနံပါတ်ကို အသုံးပြု. function ကိုခေါ်ပါ။ အခြေခံအသေးဟူသည်နံပါတ် 0 ဖြစ်လာသည့်အခါကောင်တာ၏တန်ဖိုးကိုကျွန်ုပ်တို့ပြန်လာခြင်းဖြစ်သည်။ ဤနည်းလမ်းသည်နံပါတ် 0 ဖြစ်လာသည်အထိသတ်မှတ်ထားသည့်ဤနည်းလမ်းကိုတွက်ချက်သည်အထိတွက်ချက်သည်။

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