کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.
کدنویس۲۱

کدنویس۲۱

با کد نویس 21 کد نویس باشید.

تبدیل عدد به باینری و برعکس با سی شارپ

سلام دوستان در این پست می خواهیم چگونگی تبدیل یک int به یک رشته صفر و یکِ دودویی و تبدیل یک عدد باینری به int را بررسی کنیم.

  

 

برای مثال فرض کنید ما یک عدد مانند ۲۱ داشته باشیم. این عدد در مبنای ده است اما اگر بخواهیم آن را در مبنای دو بنویسیم به چه شکل در می آید؟

برای تبدیل ۲۱ به یک عدد در مبنای دو هم می توانیم به صورت دستی عمل کنیم و خودمان محاسبه کنیم یا اینکه با یک کد آسان نتیجه بگیریم.

 

محاسبه دستی

 یکی از روش‌های تبدیل از مبنای ده به دو تقسیم متوالی بر عدد دو است. در این روش ابتدا عدد را بر دو تقسیم کرده و باقی مانده را در نظر می گیریم سپس خارج قسمت به دست آمده را تقسیم بر دو می کنیم و باقی مانده تقسیم را در سمت چپ باقی مانده قسمت قبل قرار می دهیم. این کار را آنقدر تکرار می کنیم تا خارج قسمت صفر شود.

برای مثال بیایید عدد ۲۱ را با این روش به شکل باینری در بیاوریم:

تقسیم

خارج قسمت

باقی مانده

21 / 2

10

1

10 / 2

5

0

5 / 2

2

1

2 / 2

1

0

1 / 2

0

1

 

پس باقی مانده ها را از پایین به بالا می خوانیم و پاسخ می شود: ۱۰۱۰۱

 

محاسبه با سی شارپ

کد زیر را در نظر بگیرید.

using System;

 

namespace test

{

    class Program

    {

        static void Main()

        {

            int number = 21;

            string binary = Convert.ToString(number, 2);

            Console.WriteLine(binary);

        }

    }

}

همانطور که در کد مشاهده می کنید ابتدا یک متغیر صحیح به نام number و با مقدار اولیه ۲۱ ساختیم سپس یک متغیر از نوع string به نام binary تعریف کردیم و با کمک تابع System.Convert.ToString آن را به مبنای ۲ تبدیل کردیم و در آخر آن را در کنسول چاپ کردیم.

 

حالا اگر یک رشته باینری داشته باشیم چطور می توانیم آن را به عددی در مبنای ده تبدیل کنیم؟

محاسبه دستی

 ابتدا ارزش هر رقم باینری را به دست می آوریم؛ به این صورت که اولین رقم از سمت راست دارای ارزش 20=1 و دومین رقم دارای ارزش 21=2 و... می باشند. بعد از مشخص شدن ارزش هر رقم باید ارزش رقم ها را در مقدار رقم ضرب کرده و آنها را با هم جمع کنیم تا عدد ما در مبنای ده به دست بیاید.

برای مثال ۱۱۱۱۰۰۱ را در نظر بگیرید:

20*1 + 21*0 + 22*0 + 23*1 + 24*1 + 25*1 + 26*1 = 1 + 0 + 0 + 8 + 16 + 32 + 64 = 121

 

محاسبه با سی شارپ

کد زیر را در نظر بگیرید.


static void Main()

{

    string binary = "1111001";

    int number = Convert.ToInt32(binary, 2);

    Console.WriteLine(binary);

}

همانطور که در کد بالا مشخص است ما رشته binary با مقدار ۱۱۱۱۰۰۱ را با کمک تابع Convert.ToInt32 به از مبنای ۲ به int تبدیل کردیم.

امیدوارم که این اطلاعات براتون مفید باشه

تا پستی دیگر بدرود

نظرات 2 + ارسال نظر
علیرضا یکشنبه 25 اردیبهشت 1401 ساعت 20:57 https://deftincomputer.blogspot.com

خوب بود:

کامیار چهارشنبه 25 اسفند 1400 ساعت 13:31 https://codecity5.blogsky.com/

عالی

برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد