- အကြောင်းအရာနှင့်ဘာမှမဆိုင်ပါဘူးအကြောင်းအရာခွဲခြား
အရင်ပြောကြရအောင် - ဟုတ်တယ် ။ octdec () ကို octal strings → decimals ကိန်းများ နှင့် decoct () decoct () decoct () decimal integers → octal strings ကို အသုံးပြုရန်အသုံးပြုသည်။ နှစ်ခုပေါင်းစပ်မှုသည်နှစ်လမ်းသွားပြောင်းလဲခြင်းကိုအောင်မြင်နိုင်သည်။ အောက်ပါတို့သည်အသုံးပြုမှု,
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// ကားအောက်သံ → ဒက်မချက်</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">octdec</span></span><span>(</span><span><span class="hljs-string">'17'</span></span><span>); </span><span><span class="hljs-comment">// 15</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> PHP_EOL;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">octdec</span></span><span>(</span><span><span class="hljs-string">'011'</span></span><span>); </span><span><span class="hljs-comment">// 9(string ကိုအတွက် ဦး ဆောင်ဇာတ်ကောင် 0 အဓိပ္ပာယ်ကိုပြောင်းလဲလိမ့်မည်မဟုတ်ပါ,它仍按ကားအောက်သံ解析)</span></span><span>
</span><span><span class="hljs-comment">// ဒက်မချက် → ကားအောက်သံ</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-number">15</span></span><span>); </span><span><span class="hljs-comment">// "17"</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> PHP_EOL;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-number">9</span></span><span>); </span><span><span class="hljs-comment">// "11"</span></span><span>
</span></span>အဓိကအချက်များ
octdec (string ကို Uctal): int - int - parameter သည် string တစ်ခုဖြစ်သည် ။
Decoct (INT $ Decimal): string ကို - ကွမ်းခြံကုန်း များမှာ ကိန်းများ ,
octal 0-7 သာခွင့်ပြုပါတယ်။ 8, 9 သို့မဟုတ် Non-Non-Non-Non- ကိန်းဂဏန်းများကိုဖြတ်သန်းပြီးနောက်ပထမ ဦး ဆုံးတရားမဝင်တည်နေရာကိုလျစ်လျူရှုလိမ့်မည်။ ၎င်းသည် ပထမ ဦး ဆုံးအတည်ပြုရန်အလုံခြုံဆုံးဖြစ်ပြီးနောက်ပြောင်းလဲရန်ဖြစ်သည် ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">isValidOctal</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$s</span></span><span>): </span><span><span class="hljs-title">bool</span></span><span> {
</span><span><span class="hljs-comment">// ခဲခွင့်ပြုပါ 0;至少一个ကားအောက်သံ数字</span></span><span>
</span><span><span class="hljs-keyword">return</span></span><span> (</span><span><span class="hljs-keyword">bool</span></span><span>)</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">'/^[0-7]+$/'</span></span><span>, </span><span><span class="hljs-variable">$s</span></span><span>);
}
</span><span><span class="hljs-variable">$input</span></span><span> = </span><span><span class="hljs-string">'128'</span></span><span>; </span><span><span class="hljs-comment">// တရားမဝင်သော</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">isValidOctal</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>)) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">"不是合法的ကားအောက်သံ数:<span class="hljs-subst">{$input}</span></span></span><span>");
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">octdec</span></span><span>(</span><span><span class="hljs-variable">$input</span></span><span>);
</span></span>string "011" သည်စာသားသာဖြစ်သည်။ Octdec ("011") သည် octal ("011") ကိုသာခွဲထားလိမ့်မည်။
PHP Code တွင် PHP Code တွင် PHP Code ရှိ PHP Code တစ်ခုလုံး တွင်ရေးသားထားပါက၎င်းသည် octal lional အရေအတွက် (ဒ decimal မ 9 နှင့်ညီသည်) ဖြစ်သည်။ စိတ်ရှုပ်ထွေးမှုများကိုရှောင်ရှားရန် Source Code တွင် ဦး ဆောင်သည့်ကိန်းဂဏန်းများနှင့်သက်ဆိုင်သောဂဏန်းများကိုအသုံးပြုခြင်းကိုရှောင်ရှားရန်အကြံပြုသည်။ octdec လိုအပ်သည့်အခါ octdec () နှင့်အတူ strings ကိုသုံးရန်ရှင်းလင်းသောနည်းလမ်း။
decoct () decoct ဖို့ အငြင်းအခုံတစ်ခုကိန်းဖြစ်ပါတယ်။ အနှုတ်လက်ခဏာ နံပါတ်များသည်အကောင်အထည်ဖော်မှုပလက်ဖောင်း၏အကျယ်အ 0 င် (များသောအားဖြင့် 64 bits) ၏အနိမ့်အမြင့်နှင့်အညီနှစ်နိုင်ငံအကြားပူးပေါင်းပါဝင်မှုတွင်ပါ 0 င်သည်။ အထူးလိုအပ်ချက်မရှိပါက ကျေးဇူးပြု. အနုတ်လက်ခဏာမဟုတ်သောကိန်းများကိုသာကိုင်တွယ်ပါ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(-</span><span><span class="hljs-number">10</span></span><span>); </span><span><span class="hljs-comment">// ပလက်ဖောင်းအားဖြင့်ကွဲပြားခြားနားသည်,များသောအားဖြင့်ရှည်လျားသော string ကို</span></span><span>
</span></span>64-bit php တွင်အများဆုံး Int သည် 9.22E18 ဖြစ်သည်။ decoct () ဒီကန့်သတ်ထားသည်။
အလွန်ကြီးမားသောဒ decimal မကိန်းဂဏန်းများ ( INT အကွာအဝေးထက်ကျော်လွန်) ၏ပြောင်းလဲမှုများကိုဖြေရှင်းရန်လိုအပ်ပါက -
gmp_ * (ဥပမာ GMP_INIT + GMP_STSSTALVAL ) ကိုသုံးပါ။
သို့မဟုတ် BC / Self-Self-Write MANESS algorithm ကိုသုံးပါ။
octal →ဒ decimal မ ကိန်း , အကယ်. ၎င်းသည် code ထက်ကျော်လွန်ပါက ကျေးဇူးပြု. GMP / BC အစီအစဉ်ကိုသုံးပါ။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">octalToDecimal</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$oct</span></span><span>): </span><span><span class="hljs-title">int</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">'/^[0-7]+$/'</span></span><span>, </span><span><span class="hljs-variable">$oct</span></span><span>)) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">"တရားမဝင်သောကားအောက်သံ:<span class="hljs-subst">$oct</span></span></span><span>");
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">octdec</span></span><span>(</span><span><span class="hljs-variable">$oct</span></span><span>);
}
</span></span> <span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">decimalToOctal</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">int</span></span></span><span> </span><span><span class="hljs-variable">$dec</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$dec</span></span><span> < </span><span><span class="hljs-number">0</span></span><span>) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">"အနုတ်လက်ခဏာမဟုတ်သောကိန်းဂဏန်းများသာထောက်ပံ့သည်"</span></span><span>);
}
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">decoct</span></span><span>(</span><span><span class="hljs-variable">$dec</span></span><span>);
}
</span></span> <span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">octalToDecimalBig</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$oct</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">'/^[0-7]+$/'</span></span><span>, </span><span><span class="hljs-variable">$oct</span></span><span>)) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">"တရားမဝင်သောကားအောက်သံ:<span class="hljs-subst">$oct</span></span></span><span>");
}
</span><span><span class="hljs-variable">$g</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmp_init</span></span><span>(</span><span><span class="hljs-variable">$oct</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">gmp_strval</span></span><span>(</span><span><span class="hljs-variable">$g</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>); </span><span><span class="hljs-comment">// 返回ဒက်မချက်“ကြိုး”</span></span><span>
}
</span><span><span class="hljs-function"><span class="hljs-keyword">function</span></span></span><span> </span><span><span class="hljs-title">decimalToOctalBig</span></span><span>(</span><span><span class="hljs-params"><span class="hljs-keyword">string</span></span></span><span> </span><span><span class="hljs-variable">$dec</span></span><span>): </span><span><span class="hljs-title">string</span></span><span> {
</span><span><span class="hljs-keyword">if</span></span><span> (!</span><span><span class="hljs-title function_ invoke__">preg_match</span></span><span>(</span><span><span class="hljs-string">'/^[0-9]+$/'</span></span><span>, </span><span><span class="hljs-variable">$dec</span></span><span>)) {
</span><span><span class="hljs-keyword">throw</span></span><span> </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-built_in">InvalidArgumentException</span></span><span>(</span><span><span class="hljs-string">"တရားမဝင်သောဒက်မချက်:<span class="hljs-subst">$dec</span></span></span><span>");
}
</span><span><span class="hljs-variable">$g</span></span><span> = </span><span><span class="hljs-title function_ invoke__">gmp_init</span></span><span>(</span><span><span class="hljs-variable">$dec</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>);
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-title function_ invoke__">gmp_strval</span></span><span>(</span><span><span class="hljs-variable">$g</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>);
}
</span></span>ထိပ်ဖျား: GMP extension ကိုပတ်ဝန်းကျင်တွင်ဖွင့်ထားရန်လိုအပ်သည်။ GMP ကိုအသုံးမပြုပါကဒီဂျစ်တယ်ပြောင်းလဲခြင်းကို ဘီစီ (သို့) စင်ကြယ်သော PHP ကို အသုံးပြု. အကောင်အထည်ဖော်နိုင်သည်။
Base_Convert (string $ num, $ မှ $ မှ $ မှရရှိသည်) သည် binary ပြောင်းလဲခြင်းကိုအကောင်အထည်ဖော်နိုင်သည်။
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-string">'17'</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>); </span><span><span class="hljs-comment">// "15"</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">base_convert</span></span><span>(</span><span><span class="hljs-string">'15'</span></span><span>, </span><span><span class="hljs-number">10</span></span><span>, </span><span><span class="hljs-number">8</span></span><span>); </span><span><span class="hljs-comment">// "17"</span></span><span>
</span></span>ကွဲပြားခြားနားမှုနှင့်အပေးအယူ - offs:
base_convertert () input / output under များသည် "စာသားအခြေပြုပြောင်းလဲခြင်း" ၏ semantics နှင့်ပိုမိုနီးကပ်သော strings နှစ်ခုလုံး strings နှစ်ခုလုံး ,
octdec () / decoct () သည် "octal? decimal" decimal api နှင့်ပိုမိုနီးကပ်စွာ semantics နှင့် octdec () ကို တိုက်ရိုက်ပြန်ပို့သည်။
Super Overtegers ကြီးများနှင့်ရင်ဆိုင်ရသောအခါ Base_Convert () သည် အချို့သောအခြေအနေများတွင်အကောင်အထည်ဖော်မှုနှင့်တိကျသောကန့်သတ်ချက်ရှိသည်။ လုံးဝလုံခြုံမှုရှိရန် GMP / BC ကို အသုံးပြုရန်အကြံပြုသည်။
အဖြေ - ဟုတ်တယ်။ octdec () (octal string → decimal int ) နှင့် decoct ( decimal in int → oct → oct → oct string) ကိုသုံးပါ။
ကျေးဇူးပြု. ထုတ်လုပ်မှုအလေ့အကျင့်တွင်သတိပြုပါ။ input screenification, အနုတ်လက်ခဏာနံပါတ်ပြုပြင်ခြင်း, ကြီးမားသောအရေအတွက်လိုအပ်ပါက GMP / BC Solutions များကိုရွေးချယ်ရန် ပို. အားကောင်းလာသည်။