Bu bölümde İkili sayıların Ondalık sayılara dönüştürülmesi ele alınacaktır. Kavrama geçmeden önce İkili sayıları ve ondalık sayıları anlamamız gerekiyor. Bildiğimiz gibi bilgisayar, insanların yazdığı veya yaptığı kelimeleri veya sayıları anlamıyor. Bunun yerine yalnızca 0'ları ve 1'leri anlar. Örneğin, bilgisayarda bir kelime veya sayı yazdığımızda, çeşitli yazılımlar veya derleyiciler bu sayı veya kelimelerin ikili forma (0'lar ve 1'ler biti) dönüştürülmesine yardımcı olur. Böylece bir bilgisayar makinesi bunları kolaylıkla anlayabilir.
java ile dünyaya merhaba
İkili numara
İkili sayı, bilgisayarda depolanan bilgi veya verileri 0 ve 1 bitlerinin birleşimiyle temsil eden bir sayıdır. 0 ve 1 olmak üzere iki bitten oluştuğu için 2 tabanlı sayı sistemi olarak da bilinir. Bunlar ikili sayılardır (0 ve 1), 1001, 1010, 1101, 1111, 1010101 vb.
Ondalık sayı
Ondalık sayı, 0'dan 9'a kadar 10 rakam içeren bir sayıdır. Tabanı 10'dur çünkü 10 rakamı (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) toplar ve sayıyı temsil eder veya yapar. Bu on rakamı kullanarak tam sayıyı bulun.
İkili sayıyı ondalığa dönüştüren algoritma
- Giriş olarak ikili bir sayı alın.
- Sayıyı 10'a bölün ve kalanı rem değişkenine kaydedin.
- ondalık_sayı = ondalık_sayı + rem * taban;
Başlangıçta decimal_num 0'dır ve taban 1'dir; burada rem değişkeni sayının geri kalanını saklar. - Orijinal sayının bölümünü 10'a bölün.
- Tabanı 2 ile çarpın.
- İkili sayının ondalık basamağını yazdırın.
While döngüsünü kullanarak ikili sayıyı ondalık sayıya dönüştürme
Bir while döngüsü kullanarak ikili sayının (0'lar ve 1'ler) birleşimini ondalık sayıya dönüştüren C programını düşünelim.
program.c
#include #include void main() { // declaration of variables int num, binary_num, decimal_num = 0, base = 1, rem; printf (' Enter a binary number with the combination of 0s and 1s '); scanf (' %d', &num); // accept the binary number (0s and 1s) binary_num = num; // assign the binary number to the binary_num variable while ( num > 0) { rem = num % 10; /* divide the binary number by 10 and store the remainder in rem variable. */ decimal_num = decimal_num + rem * base; num = num / 10; // divide the number with quotient base = base * 2; } printf ( ' The binary number is %d ', binary_num); // print the binary number printf (' The decimal number is %d ', decimal_num); // print the decimal getch(); }
Çıktı
Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13
Kodun açıklamaları: Yukarıdaki programda gördüğümüz gibi kullanıcılardan bir ikili sayı (0 ve 1) alarak bu sayıyı num değişkenine kaydetmelerini ister. Her yinelemede, bir while döngüsü ikili sayı koşulunu kontrol eder ve verilen sayının 0'dan küçük olmaması gerektiğini doğrular; aksi takdirde döngüden çıkar.
Aşağıda while döngüsünün yinelemesi şu şekildedir:
1. yineleme:
rem = %1101 10 => 1
ondalık_sayı = 0 + 1 * 1 => 1 (ondalık_değer = 0, rem = 1 ve taban = 1)
sayı = 1101 / 10 => 110
okulu kim icat etti
taban = 1 * 2 => 2
2. yineleme:
rem = %110 10 => 0
ondalık_sayı = 1 + 0 * 2 => 1 (decimal_değer = 1, rem = 0 ve taban = 2)
sayı = 110 / 10 => 11
taban = 2 * 2 => 4
3. yineleme:
rem = %11 10 => 1
ondalık_sayı = 1 + 1 * 4 => 5 (decimal_değer = 1, rem = 1 ve taban = 4)
javascript if ifadesi
sayı = 11/10 => 1
btree ve b ağacı
taban = 4 * 2 => 8
4. yineleme:
rem = %1 10 => 1
ondalık_sayı = 5 + 1 * 8 => 1 (decimal_değer = 5, rem = 1 ve taban = 8)
sayı = 1 / 10 => 0
taban = 8 * 2 => 16
For döngüsü kullanarak ikili sayıyı ondalık sayıya dönüştürün
İkili sayıların (0 ve 1'ler) kombinasyonunu for döngüsünü kullanarak ondalık sayıya dönüştüren C dilinde bir program düşünelim.
ondalık.c
Java while döngüsünde çalışır
#include #include #include // use math.h header file void main() { // declaration of local variables i, bin_num, decimal_num = 0, rem; int i, bin_num, decimal_num = 0, rem; printf (' Enter the binary number with the combination of 0s and 1s '); scanf ('%d', &bin_num); // takes the binary number as the input printf( ' The binary number is %d', bin_num); // print the binary number for (i = 0; bin_num != 0; ++i) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + (rem) * ( pow (2, i)); } // print the decimal number printf (' Conversion from binary to decimal number is %d', decimal_num); getch(); }
Çıktı
Enter the binary number with the combination of 0s and 1s 10010 The binary number is 10010 Conversion from binary to decimal number is 18
Fonksiyonu kullanarak ikili sayıyı ondalık sayıya dönüştürün
Kullanıcı tanımlı fonksiyonu kullanarak ikili sayının (0'lar ve 1'ler) kombinasyonunu ondalık sayıya dönüştüren C dilinde bir program düşünelim.
yani.
#include #include int binaryTodecimal(int bin_num); int main() { // declare the local variable int bin_num, dec_num; printf (' Enter the binary number (0s and 1s) '); scanf ('%d', &bin_num); dec_num = binaryTodecimal (bin_num); // call the binaryTodecimal() function printf (' Conversion of the binary number to decimal number is %d', dec_num); } // use user defined function --- binaryTo decimal function int binaryTodecimal( int bin_num) { // declaration of variables int decimal_num = 0, temp = 0, rem; while (bin_num != 0) { rem = bin_num % 10; bin_num = bin_num / 10; decimal_num = decimal_num + rem * pow( 2, temp); temp++; } return decimal_num; }
Çıktı
Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25
Dizi ve işlevi kullanarak ikili sayıyı ondalık sayıya dönüştürün
Fonksiyon ve diziyi kullanarak ikili sayının (0'lar ve 1'ler) kombinasyonunu ondalık sayıya dönüştüren C dilinde bir program düşünelim.
Ondalık2.c
#include #include int binaryTodecimal (char num[]) { int i, deci_num, mul = 0; for ( deci_num = 0, i = str_length(num) - 1; i >= 0; --i, ++mul) { deci_num = deci_num + (num[i] - 48) * (1 << mul); } return deci_num; } int str_length( char str[]) { int i = 0; while (str[i] != ' ') i++; return i; } int main() { char num[] = '1101'; int deci_num; printf (' The binary number is %s', num); printf (' The decimal number of %s is %d', num, binaryTodecimal(num)); return 0; }
Çıktı
The binary number is 1101 The decimal number of 1101 is 13