c++ binary

تبدیل اعداد باینری مبنای 2 به دسیمال مبنای 10 در سی پلاس پلاس

سوال: برنامه ای بنویسید که عدد باینری 101 را دریافت کرده و تبدیل به دسیمال کند

5

 

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

 

اعداد دسیمال که همون سیستم اعداد خودمون مثلا: 10 ، 34 و 656456

اعداد باینری یا دو دویی یک شیوه نمایش اعداد به صورت 0 و 1 که بهش نمایش اعداد در مبنای 2 هم می گن

برای مثال عدد 101 برابر عدد 5 عه

به جدول زیر نگاه کنید

binary table

این شمارنده نشان می دهد که اعداد ۰ تا ۳۱ در مبنای ۲ چگونه نمایش داده می شوند.

روش محاسبه 101 به این صورت عه که مقدار یکان برایر با 1 عه و با توجه به جدول برابر با 1 می شه و مقدار صدگان هم برابر با 4 می شه ، جمع این دو عدد برابر 5 می شه

نکته: مقدار دهگان به دلیل صفر بودن حساب نمی شه

101 =  [ ( 1 ) × 22 ] + [ ( 0 ) × 21 ] + [ ( 1 ) × 20 ] = 5

امید وارم متوجه شده باشید 🙂

 

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

#include <iostream>
using namespace std;
int main() {
    int number = 0, bace = 1, last = 0,sum = 0;
    cout << "Enter number: ";
    cin >> number;
    while (number){
        last = number%10;
        number = number/10;
        last *= bace;
        sum += last;
        bace = bace*2;
    }
    cout << sum;
    return 0;
}

 

نظر خود را بگویید

آدرس ایمیل شما منتشر نخواهد شد. قسمت های مورد نیاز علامت گذاری شده است *