logo

Binääriluku desimaalilukuihin C:ssä

Tässä osiossa käsitellään binäärilukujen muuntamista desimaaliluvuiksi. Ennen kuin siirrymme käsitteeseen, meidän on ymmärrettävä binaariluvut ja desimaaliluvut. Kuten tiedämme, tietokone ei ymmärrä sanoja tai numeroita, joita ihmiset kirjoittavat tai tekevät. Sen sijaan se ymmärtää vain 0:ta ja 1:tä. Esimerkiksi kun kirjoitamme sanan tai numeron tietokoneella, erilaiset ohjelmistot tai kääntäjät auttavat muuttamaan nämä numerot tai sanat binäärimuotoon (0s ja 1s bitti). Jotta tietokonekone voi helposti ymmärtää nämä.

pyspark opetusohjelma
Binääriluku desimaalilukuihin C:ssä

Binääriluku

Binääriluku on luku, joka edustaa tietokoneeseen tallennettua tietoa 0s- ja 1s-bittien yhdistelmällä. Se tunnetaan myös nimellä 2 perusnumerojärjestelmä, koska siinä on kaksi bittiä, 0s ja 1s. Nämä ovat binäärilukuja (0 ja 1) 1001, 1010, 1101, 1111, 1010101 jne.

Desimaaliluku

Desimaaliluku on luku, joka sisältää 10 numeroa 0–9. Sen kantaluku on 10, koska se kerää 10 numeroa (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) ja edustaa tai muodostaa kokonaisluku käyttämällä näitä kymmentä numeroa.

Algoritmi, jolla muunnetaan binääri desimaaliksi

  1. Ota syötteeksi binääriluku.
  2. Jaa luku 10:llä ja tallenna loput muuttujaan rem.
  3. desimaaliluku = desimaaliluku + rem * kanta;
    Aluksi desimaaliluku on 0 ja kantaluku 1, missä rem-muuttuja tallentaa luvun loppuosan.
  4. Jaa alkuperäisen luvun osamäärä 10:llä.
  5. Kerro perusarvo 2:lla.
  6. Tulosta binääriluvun desimaaliluku.

Muunna binääriluku desimaaliluvuksi while-silmukan avulla

Tarkastellaan C-ohjelmaa, joka muuntaa binääriluvun (0s ja 1s) yhdistelmän desimaaliluvuksi while-silmukan avulla.

ohjelma.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(); } 

Lähtö

 Enter a binary number with the combination of 0s and 1s 1101 The binary number is 1101 The decimal number is 13 

Selitykset koodille: Kuten yllä olevassa ohjelmassa näemme, se pyytää käyttäjiltä binääriluvun (0s ja 1s) tallentaakseen luvun muuttujaan num. Jokaisessa iteraatiossa while-silmukka tarkistaa binäärilukuehdon ja vahvistaa, että annettu luku ei saa olla pienempi kuin 0; muuten se poistuu silmukasta.

Seuraavassa on while-silmukan iteraatio seuraavasti:

1. iteraatio:

rem = 1101 % 10 => 1

desimaaliluku = 0 + 1 * 1 => 1 (desimaaliarvo = 0, rem = 1 ja kantaluku = 1)

java merkkijono int

luku = 1101 / 10 => 110

kanta = 1 * 2 => 2

2. iteraatio:

rem = 110 % 10 => 0

desimaaliluku = 1 + 0 * 2 => 1 (desimaaliluku = 1, rem = 0 ja kanta = 2)

int merkkijonomuunnos Javassa

luku = 110 / 10 => 11

kanta = 2 * 2 => 4

3. iteraatio:

rem = 11 % 10 => 1

desimaaliluku = 1 + 1 * 4 => 5 (desimaaliarvo = 1, rem = 1 ja kantaluku = 4)

luku = 11/10 => 1

kanta = 4 * 2 => 8

4. iteraatio:

rem = 1 % 10 => 1

desimaaliluku = 5 + 1 * 8 => 1 (desimaaliluku = 5, rem = 1 ja kantaluku = 8)

luku = 1/10 => 0

kanta = 8 * 2 => 16

inurl:.git/head

Muunna binääriluku desimaaliluvuksi käyttämällä for-silmukkaa

Tarkastellaan C-kielen ohjelmaa, joka muuntaa binääriluvun (0s ja 1s) yhdistelmän desimaaliluvuksi for-silmukan avulla.

desimaali.c

 #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(); } 

Lähtö

 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 

Muunna binääriluku desimaaliluvuksi funktion avulla

Tarkastellaan C-kielen ohjelmaa, joka muuntaa binääriluvun (0s ja 1s) yhdistelmän desimaaliluvuksi käyttämällä käyttäjän määrittämää funktiota.

niin c

tavutaulukko merkkijonoksi
 #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; } 

Lähtö

 Enter the binary number (0s and 1s) 11001 Conversion of the binary number to decimal number is 25 

Muunna binääriluku desimaaliluvuksi taulukon ja funktion avulla

Tarkastellaan ohjelmaa C-kielellä, joka muuntaa binääriluvun (0s ja 1s) yhdistelmän desimaaliluvuksi funktion ja taulukon avulla.

Desimaali2.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; } 

Lähtö

 The binary number is 1101 The decimal number of 1101 is 13