Programmering

Konvertere binære tal

12. januar 2013 af Rustnesøm (Slettet) - Niveau: Universitet/Videregående

Jeg fatter ikke rigtig det her spørgsmål:

2) Du skal konvertere fra binære till decimale tal, ring ind det rigtige svar hvis tallet er: 11101011
a) 150
b) 511
c) 235
d) 255
e) 233

Hvordan ved man det?

 


Brugbart svar (2)

Svar #1
13. januar 2013 af jesx (Slettet)

Super nemt. De binære tal har en række stigende værdier. Er det 1, bruges værdien. Er det 0, undlades den. Det bagerste tal i rækken har decimalværdien 1. Det forrige tal har så den dobbelte værdi 2. Det forrige igen 4, så 8, 16, 32 osv. 

Dit tal er 1110 1011. Det kan omregnes til  (1*128)+(1*64)+(1*32)+(0*16) og (1*8)+(0*4)+(1*2)+(1*1). Første tal i paranteserne er dit binære tal. Det afgører om du skal bruge tallet. 1=ja. 0=nej. Næste tal er værdien af det binære tals decimalværdi. 

I alt giver 1110 1011 værdien 235 i decimaltal.


Svar #2
13. januar 2013 af Rustnesøm (Slettet)

Okay, men hvis decimaltallet var 150 eller 511. Hvordan ville binære tallet så have set ud?

Og hvordan konverterer man 120/10 til binære tal?

Brugbart svar (2)

Svar #3
13. januar 2013 af jesx (Slettet)

Ja, så skal man til at tænke sig om. Men svært er det sådan set ikke. 

Decimaltallet er 150. 

Så tager man bare de binære værdier langsomt opad, indtil man finder et tal som er for højt. 

1+2+4+8 = 15

16+32+64+128 = 240

Ja, så kom vi allerede for højt. 240+15 giver 255, og viser sig at være hele 105 for høj. Så må vi finde frem til 105 i binærværdier, så vi kan undgå disse. For at gøre det lidt hurtigere begynder jeg med nogle værdier jeg ved er høje. Fx 64+32=96, og så er det nemt at se hvordan vi rammer de 105. 

1+8+32+64 = 105. 

Derfor må det også være 1,8,32 og 64 vi ikke skal benytte. 

Det binære tal bliver så

1001 0110

Det handler desværre lidt om at prøve sig frem. Men ellers kan man også bare bruge en converter.

www.acc6.its.brooklyn.cuny.edu/~gurwitz/core5/nav2tool.html 


Brugbart svar (1)

Svar #4
13. januar 2013 af mathon

 

          15010 = 100101102

           51110 = 1111111112

          12010/1010 = 11110002/10102


Svar #5
13. januar 2013 af Rustnesøm (Slettet)

Jeg har en vigtig prøve på torsdag om dette, så jeg er nødt til at lære det.

Men hvorfor bliver det binære tal 1001 0110?

Så hvis man skal konvertere 120/10 til binære, så bliver det 80 + 40?


Brugbart svar (1)

Svar #6
13. januar 2013 af jesx (Slettet)

Du kan lave dig en hjælperække med de decimale tal til de binære tal:

2048 1024 512 254   128 64 32 16   8 4 2 1

Som svarer til 1111 1111 1111

Ud fra den række kan du altid bare prøve dig frem til hvilke tal, der skal til for at få et bestemt binært tal. Rækken fortsætter desuden i al uendelighed, hvis du skulle få brug for større tal. 

Svaret på hvorfor det binære tal bliver 1001 0110 er at 128 + 16 + 4 + 2 = 150. Det er bare at vælge de rigtige fra rækken. 

Jeg kan ikke se idéen i at lave et divisionsstykke som binær. Binærsproget skal læses af computere, og selve det at dividere (hvilket en computer egentligt ikke kan, den kan kun lægge sammen) er også en proces, som sker med en kommando med endnu mere binært sprog. Men ellers er det bare at tælle op på hjælperækken.

Når det er sagt, så kan 120/10 slet ikke lade sig gøre, da 2-tallet ikke kan være binært. Her er regnestykket måske i stedet som mathon viser. Her regnes i stedet med et andet talsystem, jeg desværre ikke kan huske.


Skriv et svar til: Konvertere binære tal

Du skal være logget ind, for at skrive et svar til dette spørgsmål. Klik her for at logge ind.
Har du ikke en bruger på Studieportalen.dk? Klik her for at oprette en bruger.