Create Binary To Octal Converter in C#

Posted by ေတဇာလင္း Wednesday 7 September 2016 0 comments

မိတ္ေဆြ၊ ညီအစ္ကို၊ ေမာင္ႏွမအားလံုးပဲ မဂၤလာပါဗ်ာ။ ဒီေန႔ေတာ့ က်ေနာ္တို႔ Binary Number တစ္ခုကို Octal Number အျဖစ္ ဘရ္လို ေျပာင္းလဲ ယူႏိုင္မလဲဆိုတာေလးကို ေလ့လာၾကည့္ၾကမွာ ျဖစ္ပါတရ္။ Logic ပိုင္း ေထြေထြထူးထူး မရွိပါဘူး။ Binary Number ကို Octal Number အျဖစ္သို႔ တိုက္ရိုက္ မေျပာင္းလဲဘဲ မိတ္ေဆြတို႔ နားလည္လြရ္သြားေအာင္ က်ေနာ္တို႔ ေရွ႕သင္ခန္းစာေတြမွာ ေလ့လာခဲ့ၿပီးျဖစ္တဲ့ function ႏွစ္ခုကို ေပါင္းစီးၿပီး Octal Number အျဖစ္ ဆြဲထုတ္ပံုေလးကို ေဆြးေႏြးေပးသြားမွာျဖစ္ပါတရ္။ Coding Flow ေလးကို အနည္းငရ္ ေျပာရမရ္ဆိုရင္ေတာ့....
  1. ပထမဦးဆံုး Binary Number ကို BinaryToDecimal( ) ဆိုတဲ့ function ကိုျဖတ္ၿပီး Decimal Number တစ္ခုကို အရင္ဆြဲထုတ္မရ္။
  2. ေနာက္ဆံုးမွာေတာ့ ၄င္း ရရွိလာေသာ Decimal Number ကို DecToOctal( ) function ကို ထပ္ျဖတ္ေစၿပီး Octal Number တစ္ခုကို ရယူလိုက္မွာပဲျဖစ္ပါတရ္ဗ်ာ။
Function ႏွစ္ခုစလံုးဟာ ေရွ႕သင္ခန္းစာေတြမွာ ေလ့လာခဲ့ၿပီးသားျဖစ္လို႔ မိတ္ေဆြတို႔အေနနဲ႔ အခက္အခဲမရွိ နားလည္ႏိုင္ၾကလိမ့္မရ္လို႔ ေမွ်ာ္လင့္ပါတရ္ဗ်ာ။ GUI ကိုေတာ့ က်ေနာ္ ေအာက္က ပံုစံအတိုင္းခ်ထားပါတရ္။ မိတ္ေဆြတို႔အေနနဲ႔ေတာ့ မိမိႀကိဳက္ႏွစ္သက္ရာ ပံုစံနဲ႔ ျပဳလုပ္ႏိုင္ပါတရ္ဗ်ာ။
Coding ေလးကို ေလ့လာၾကည့္လိုက္ၾကပါအံုးဗ်ာ။
using System;
using System.Windows.Forms;

namespace NumberTypeConverter
{
    public partial class BinaryConversion : Form
    {
        public BinaryConversion()
        {
            InitializeComponent();
        }

        public int BinaryToDecimal(int Bi)
        {
           int Dec=0, power=0, remainder=0, Quotient= Bi;
           while (Quotient != 0)
            {
                remainder = Quotient % 10;
                Dec += (int)(remainder * Math.Pow(2, power));
                Quotient /= 10;
                ++power;
            }
           return Dec;
        }

        public string DecToOctal(int Dec)
        {
            string remainder = null, result = null;
            int Quotient = Dec;
            while (Quotient > 0)
            {
                remainder += (Quotient % 8).ToString();
                Quotient /= 8;
            }
            for (int i = remainder.Length - 1; i >= 0; i--)
            {
                result += remainder[i];
            }
            return result;
        }


        private void btnConvert_Click(object sender, EventArgs e)
        {
            int Dec = BinaryToDecimal(int.Parse(txtBinary.Text));
            txtOctal.Text = DecToOctal(Dec).ToString();
        }

        private void btnReset_Click(object sender, EventArgs e)
        {
            txtBinary.Clear();
            txtOctal.Clear();
            txtBinary.Focus();
        }
    }
}
အနည္းငယ္ရွင္းရမရ္ဆိုရင္ျဖင့္... က်ေနာ္တို႔ Binary Number အျဖစ္ 110110 ဆိုတာကို ရိုက္ထည့္လိုက္ပါမရ္။ ပထမ BinaryToDecimal( ) function ကိုျဖတ္ၿပီးတဲ့အခ်ိန္မွာေတာ့ 54 ဆိုတဲ့ Decimal Number တစ္ခုကို က်ေနာ္တို႔ ရရွိေနပါၿပီ။ ၄င္းကိုမွ DecToOctal( ) function ကိုထက္ျဖတ္လိုက္တဲ့အခါမွာေတာ့ က်ေနာ္တို႔ လိုခ်င္ေနတဲ့ Octal Number ျဖစ္တဲ့ 66 ဆိုတဲ့ Result တစ္ခုကို ရရွိခဲ့တာပဲျဖစ္ပါတရ္ဗ်ာ။ Function ႏွစ္ခုစလံုးက ေလ့လာခဲ့သားေတြျဖစ္လို႔ က်ေနာ္အေသးစိတ္မရွင္းျပေတာ့ပါဘူး။ မိတ္ေဆြ၊ ညီအစ္ကို၊ ေမာင္ႏွမအားလံုး ေလ့လာျခင္းျဖင့္ ေက်နပ္ႏိုင္ၾကပါေစ။

0 Responses so far.

Post a Comment