C++'da İkili Sayıdan Ondalığa Dönüştürme

C Da Ikili Sayidan Ondaliga Donusturme



Yazımızda bir C++ programında ikili değerlerin ondalık değerlere dönüştürülmesini göreceğiz. İkili sayı 0 ve 1 rakamlarıyla temsil edilirken, ondalık değerler 0'dan 9'a kadar olan rakamları içerir. İkiliden ondalığa dönüşümü gerçekleştirmek için ikili değerin '' kuvvetine yükseltilmiş 2 ile çarpılması gerekir. n” sağdan başlayıp daha yüksek bir “n” ile sola doğru hareket eder. İkili sayıyı ondalık değere dönüştürmek için bunu kodda uygulayalım.

Örnek 1: “While” Döngüsünü Kullanarak İkili Sayıdan Ondalığa Programlama

Sayıyı ikiliden ondalığa dönüştürmek için aşağıdaki programımız var. Program içerisinde ikili sayının ondalık sayıya dönüşümü için “while” döngüsünü kullanıyoruz.

#include
#include

kullanarak ad alanı std ;

int dönüşümOfBin ( uzun uzun ) ;

int ana ( ) {
uzun uzun birde ;
cout << 'İkili Sayı Gerekli: ' ;
yemek yiyor >> birde ;
cout << birde << ' ikili olarak = ' << dönüşümOfBin ( birde ) << 'ondalık sayıyla' ;
geri dönmek 0 ;
}

int dönüşümOfBin ( uzun uzun birde ) {
int Bu yüzden = 0 , X = 0 , kalan ;

sırasında ( birde ! = 0 ) {
kalan = birde % 10 ;
birde / = 10 ;
aralık + = kalan * güç ( 2 , X ) ;
++ X ;
}

geri dönmek Bu yüzden ;
}

Burada giriş ve çıkış akışları için “iostream” başlık dosyasını ve programdaki matematiksel fonksiyonu kullanmak için “cmath”ı tanımlıyoruz. Daha sonra “long long” tipindeki parametrenin geçirildiği ConversionOfBin() fonksiyonunu tanımlıyoruz. Daha sonra programı yürütmek için main() işlev çağrımız var. Main() fonksiyonu içerisinde “num” adında uzun bir inter type değişkeni tanımlıyoruz.







Bundan sonra ConversionOfBin() işlevi giriş ikili sayısını ondalık sayıya dönüştürür. Bunun için sürücü kodundan sonra ConversionOfBin() fonksiyonunun tanımına sahibiz. ConversionOfBin() fonksiyonu ikili sayıya sahip “num” değişkeni ile geçirilir. Daha sonra “num”daki ikili sayıyı ondalık değere dönüştürmek için “while” döngüsünü çağırıyoruz. Bundan önce “deci”, “x” ve “remainder” değişkenlerini “0” değeriyle başlatıyoruz.



“While” döngüsü içerisinde ikili sayının en sağdaki değerini temsil edecek şekilde bölme işlemi gerçekleştirilir. Bölme sonuçları “kalan” değişkeninde saklanır. Daha sonra kalanın sonuçlarını ve kuvvet sonuçlarını “desi” değişkenine ekliyoruz. “x” değişkeni 2’nin aktif gücünü değerlendirmeye devam ediyor.



Belirtilen ikili sayıları ondalık değerlere dönüştürmenin sonuçları C++ konsolunda elde edilir:





Örnek 2: “For” Döngüsünü Kullanarak İkili Sayıdan Ondalığa Programlama

İkiliden ondalık sayıya dönüşüm, bir 'while' döngüsü kullanılarak gerçekleştirildi. Ancak ikili bitleri ondalık sayıya dönüştürmek için “for” döngü yöntemini de kullanabiliriz.



#include
#include

int ana ( ) {
std :: sicim çöp Kutusu ;
std :: cout << 'İkili Sayıyı Girin: ' ;
std :: yemek yiyor >> çöp Kutusu ;

int aralık = 0 ;
int temel = 1 ;

için ( int A = çöp Kutusu. uzunluk ( ) - 1 ; A >= 0 ; A -- ) {
eğer ( çöp Kutusu [ A ] == '1' ) {
aralık + = temel ;
}
temel * = 2 ;
}

std :: cout << 'Sonuçlar Ondalık Sayıda: ' << aralık << std :: sonunda ;

geri dönmek 0 ;
}

Burada, kullanıcı tarafından komut isteminde girilen ikili sayıyı depolamak için “bin” olan “std::string” değişkenine sahip olduğumuz main() fonksiyon programıyla başlıyoruz. Başlangıçta komut istemi kullanıcıdan 'cout' ifadesini kullanarak ikili sayıyı girmesini isteyecektir. Daha sonra “cin” komutu bu ikili sayıyı okuyacaktır. Daha sonra ondalık karşılığını elde etmek için “dec” değişkenini “0”, “baseIs” değişkenini ise “1” değeriyle başlatıyoruz.

Daha sonra, belirtilen ikilinin her numarası üzerinde sağdan sola doğru döngü yapan bir 'for' döngüsü çağırırız. Döngü içerisinde ikili sayının 1 olup olmadığını doğrulamak için “if” koşulumuz var. 1 ise “dec” değişkenine ondalık değer eklenir. “baseIs” değişkeni her yinelemede 2'nin 1 ile çarpılma gücüne sahiptir.

İkili sayının değeri ve ondalık değere dönüştürülmesi bilgi istemi ekranında gösterilir:

Örnek 3: İkili Diziyi Ondalık Sayıya Çeviren Program

İkili dize değeri artık değerini ondalık değere dönüştürecek şekilde tanımlanmıştır. İkili dize değerini ondalık değere dönüştürmek için aşağıdaki uygulama yapılır:

#include
#include
kullanarak ad alanı std ;

int binToDec ( dize değeri )
{
dize değeri = val ;
int ondalık_değer = 0 ;

int temel değer = 1 ;

int sadece = değer. uzunluk ( ) ;
için ( int M = sadece - 1 ; M >= 0 ; M -- ) {
eğer ( val [ M ] == '1' )
ondalık_değer + = temel değer ;
temel değer = temel değer * 2 ;
}

geri dönmek ondalık_değer ;
}

int ana ( )
{
dize değeri = '11100101' ;
cout << binToDec ( val ) << sonunda ;
}

Burada, ikili rakamların ondalık değerlere dönüştürülmesi için bir BinToDec() fonksiyonu oluşturmaya başlıyoruz. BinToDec() işlevi dize türünün “val” bağımsız değişkenini alır. BinToDec() fonksiyonu içerisinde “value” değişkenini, “val” değişkeninin değerinin “value” değişkeninde saklanacağını temsil eden “val” değişkeni ile başlatıyoruz. Daha sonra 0 değeri atanan yeni bir değişkeni “decimal_value” olarak tanımlıyoruz.

Benzer şekilde “base_value” değişkeni de 1 değeriyle set edilip başlatılıyor. Daha sonra ikili sayının uzunluğunu elde etmek için uzunluk() fonksiyonunun çağrıldığı “len” değişkenini tanımlıyoruz. Değişkenin başlatılmasından sonra “for” döngüsü yinelememiz olur. “For” döngüsü her ikili sayı basamağını sağdan sola doğru yineler.

Daha sonra “cout” komutu ile BinToDec(val) fonksiyonunu çağırdığımızda “val” değişkenine ikili sayının string değeri olarak belirtildiği ve ondalık değere dönüştürüldüğü bir main() fonksiyonumuz oluyor.

Dize türü ikili değer artık aşağıda gösterildiği gibi ondalık değere dönüştürülür:

Örnek 4: Bitset Sınıfını Kullanarak İkiliden Ondalığa Programlama

Ayrıca programda C++’ın “bitset” sınıfını tanımlayarak ikili sayıyı ondalık sayıya çevirebiliriz. Dönüştürme prosedürünün çok basit olduğu işlevleri sağlar.

#include
#include

int ana ( ) {
std :: sicim ikili ;
std :: cout << 'Lütfen ikili sayıyı belirtin: ' ;
std :: yemek yiyor >> ikili ;

std :: bit kümesi < 64 > ikili ( ikili ) ;
imzasız uzun ondalık sayı = ikili. çok uzun ( ) ;

std :: cout << 'Ondalık sayı: ' << ondalık sayı << std :: sonunda ;

geri dönmek 0 ;
}

Burada, ikili değerlerle çalışırken çok yararlı olan C++'ın “bitset” kütüphanesini başlıkta ayarladık. Bundan sonra, “binaryIs” değişkenini bildirmek için “std::string”i kullandığımız bir main() fonksiyon tanımımız var. “BinaryIs” değişkeni ikilinin değerini dizede saklar. Daha sonra kullanıcıdan gelen istemde ikili sayıyı eklemesini istiyoruz ve “cin” komutuyla okunuyor. Bundan sonra 64 bit tam sayı olabilecek bitlerin boyutunu ayarlıyoruz. Daha sonra to_ulong() fonksiyonu “bitset” sınıfından “decimalNumber” değişkenine çağrılır. to_ulong() işlevi, bit kümesini işaretsiz uzun veri türüne dönüştürür. Son olarak kullanıcı tarafından verilen ikili değerin ondalık değerini yazdırmak için “cout” komutunu kullanıyoruz.

Kullanıcı tarafından sağlanan ikili değer artık ondalık değere dönüştürülür:

Çözüm

Sonuç olarak ikili bir değeri ondalık değere dönüştürme yöntemlerini ele aldık. İkili sayıya dönüşüm için “for” döngüsünü, “while” döngüsünü ve bit kümesi sınıfı yaklaşımlarını kullandık. Bu yaklaşımlar ikili sayıları ondalık sistemlere dönüştürerek okumayı ve anlamayı kolaylaştırır.