Hvordan konvertere desimal til binær i C

Hvordan Konvertere Desimal Til Binaer I C



Datasystemer bruker ofte binære tall for å representere data og instruksjoner, men siden desimaltall er enklere for folk å forstå enn binære, er konvertering derfor nødvendig. Denne artikkelen vil gå gjennom forståelsen mellom desimaler til binær og gi programeksempler på forskjellige metoder som konverterer desimaler til binære på programmeringsspråket kalt C.

Hvordan konvertere desimal til binær i C?

Den gitte desimalverdien deles på 2 flere ganger, mens resten registreres til vi kommer til 0 som sluttkvotient. Denne prosessen brukes til å konvertere heltall fra desimal til binærtall. Formelen som viser konverteringsprosessen fra desimal til binær anses å være stadiene som er som følger:







Trinn 1: Finn resten ved å dele tallet med 2, og legg det deretter til en matrise.



Steg 2: Deretter deler du resten med to.



Trinn 3: Utfør de to første trinnene på nytt til resultatet overstiger 0.





Trinn 4: Vis matrisen bakover for å få tallets binære form. Minst-signifikant-biten (LSB) til et binært tall ligger øverst, mens mest-signifikant-biten (MSB) er mot bunnen, som er en annen måte å tolke dette på. Den binære ekvivalenten til det angitte desimaltallet er dette.

For å forstå dette bedre, her er en konvertering på 11 10 i desimal til binær konvertering:



Divisjon med 2 Kvotient Rest
11÷2 5 1 (LSB)
5 ÷ 2 2 1
2-2 1 0
1-2 0 1 (MSB)


Skriv nå resten i motsatt rekkefølge, derav desimal (11 10 ) blir (1011 2 ).

Resten vil bli notert og deretter skrevet slik at (MSB) til det binære tallet kommer først, deretter resten. Følgelig 1011 2 er den binære ekvivalenten til den gitte desimalverdien 11 10 . Som et resultat, 11 10 = 1011 2 . Følgende er implementeringen av ovennevnte desimal til binær konvertering i C-språk.

Metoder som brukes til å konvertere desimal til binær

Disse metodene som brukes i C-språket, konverterer desimalsifre til binære:

Implementer nå konverteringen av desimaler til binære desimaler etter én ved de ovennevnte tilnærmingene.

Metode 1: Desimal til binær i C-programmering med for Loop

Nedenfor er konverteringen av desimalsifferet(11) til binær ved hjelp av for-loop i C:

#include
ugyldig konvertere ( int nummer1 ) {
hvis ( num1 == 0 ) {
printf ( '0' ) ;
komme tilbake ;
}
int binært_tall [ 32 ] ; // Forutsatt 32 bit heltall.
int Jeg = 0 ;
til ( ;nummer1 > 0 ; ) {
binært_tall [ i++ ] = nummer1 % 2 ;
nummer1 / = 2 ;
}
til ( int j = i- 1 ; j > = 0 ; j-- )
printf ( '%d' , binært_tall [ j ] ) ;
}
int main ( ) {
int num1;
printf ( 'Skriv inn et desimaltall: ' ) ;
scanf ( '%d' , & nummer1 ) ;
konvertere ( nummer1 ) ;
komme tilbake 0 ;
}


Programmet ovenfor bruker for-løkken for å konvertere desimaltallet oppgitt av brukeren til binært. Utgangen er:

Metode 2: Desimal til binær i C-programmering med while-løkke

I denne metoden brukes while-løkken i C til å konvertere desimalsifferet (11), til binært, som vist nedenfor:

#include
int main ( ) {
int desimal_tall, binært_tall = 0 , base = 1 , resten;
printf ( 'Skriv inn et desimaltall: ' ) ;
scanf ( '%d' , & desimaltall ) ;
samtidig som ( desimaltall > 0 ) {
rest = desimal_tall % 2 ;
binært_tall = binært_tall + resten * utgangspunkt;
desimaltall = desimaltall / 2 ;
base = base * 10 ;
}
printf ( 'Binæren til gitt desimaltall med while-løkken er: %d' , binært_tall ) ;
komme tilbake 0 ;
}


De fire heltallsvariablene desimal_tall, binært_tall, grunntall og rest er først deklarert i dette programmet. Brukeren skriver inn et desimaltall, som vi vil konvertere til dets binære_tall. Den binære konverteringen utføres ved hjelp av while-løkken.

Metode 3: Desimal til binær i C-programmering med stabel

Dette er den enkle metoden med et stabelbasert C-program som endrer en desimalverdi til en binær:

#include

#define MAX_SIZE 32 // maksimalt antall biter i binær representasjon
int main ( ) {
int desimaltall, binær [ MAX_SIZE ] , øverst = -1 ;
printf ( 'Vennligst skriv inn et desimaltall: ' ) ;
scanf ( '%d' , & desimaltall ) ;
samtidig som ( desimaltall > 0 ) {
binær [ ++topp ] = desimal_tall % 2 ;
desimaltall / = 2 ;
}
printf ( 'Binæren til %d ved bruk av stabelmetoden er: ' ) ;
samtidig som ( topp > = 0 ) {
printf ( '%d' , binær [ topp-- ] ) ;
}
komme tilbake 0 ;
}


Vi erklærer først de tre heltallsvariablene topp, binær og desimaltall i dette programmet. Toppen er indeksen til det høyeste elementet i stabelen, desimal er tallet i desimalform som legges inn av brukeren, binær er en matrise som vil inneholde bitene i binær som MAX_SIZE biter og desimal_num er den binære matrisen. Etter det utføres den binære konverteringen ved hjelp av en while-løkke.

Utgangen er:

Metode 4: Desimal til binær i C-programmering med bitvis operatør

En operator kjent som en bitvis operasjon manipulerer hver av bitene av binære symboler som representerer heltall. Følgende er et grunnleggende C-skript som bruker bitvise operasjoner for å oversette et tall i desimaler til binært:

#include

// Denne metoden vil vise alle 4 biter av et tall
ugyldig konvertering ( int nummer1 ) {
// Vurder en 4 -bit nummer
til ( int i = 3 ; Jeg > = 0 ; Jeg-- ) {
int bit = ( 1 << Jeg ) ;
hvis ( nummer1 & bit )
printf ( '1' ) ;
ellers
printf ( '0' ) ;
}
}
int main ( ) {
int num1;
printf ( 'Skriv inn et desimaltall: ' ) ;
scanf ( '%d' , & nummer1 ) ;
omdannelse ( nummer1 ) ;
komme tilbake 0 ;
}


Dette programmet vil kjøre en for-løkke gjennom tallet som starter på den mest signifikante biten og slutter på den biten med minst betydning. Ved å utføre en 'bitvis AND'-operasjon på maske og num, kan vi bestemme om biten er enten 0 eller 1. Hvis den ikke er null, er den nåværende biten 1; ellers er det 0.

For å vise den binære formen til num1, skriv ut biten etter hver iterasjon. Den endelige utgangen etter fullstendig utførelse vil være som nedenfor:

Konklusjon

Det er en essensiell ferdighet i dataprogrammering å konvertere tall fra desimal til binær. Transformering av desimaltall til binærtall gjør oss i stand til å utføre forskjellige operasjoner i C-programmering. Denne artikkelen ga 4 metoder for å konvertere desimalverdier til binære verdier.