Velkommen, Gjest.

< Tilbake til oversikten | Hvem kan lese?

Binære tall

#1

Joika sa for siden:

Ok, så skjønner jeg det ikke helt. :sparke:

Jeg skjønner at 01 er 1, at 10 er 2 og at 00 er 0.
Jeg skjønner også at 0010 er MOV, at 0100 er ADD osv.

Der stopper det.

Om jeg skal skrive tallet 6 binært feks. Hvordan gjør jeg det? :undrer:


#2

Erica sa for siden:

Trodde tallet 6 var 111 jeg... Men nå er det hundre år siden jeg drev med binære tall, så jeg har vel glemt det meste tror jeg.


#3

allium sa for siden:

Nei, du har ikke skjønt det. 10 er 2. 110 er 6.

Teller du fra høyre, er første plass 2 opphøyd i 0, andre plass 2 opphøyd i 1, tredje plass 2 opphøyd i 2 og så videre.

På samme måte i titallssystemet. Enerplassen, tierplassen, hundreplassen og så videre.


#4

Joika sa for siden:

Jeg tenker om jeg skal skrive en byte da.. da er hver 0,1,0 osv en bit. Hver byte inneholder 8 bit. De fire første inndikerer handling, de fire siste indikerer hvilken rad det skal handles/samhandles med, og det siste er et tall/variabel....tror jeg.

Men jeg skjønner ikke hvordan man kan skrive det siste tallet som noe annet enn 0, 1 eller 2... for det binære tallet her er kun tosifret. :undrer:

Man må kanskje lage en løkke da, som legger til?


#5

Joika sa for siden:

Tror ikke vi tenker helt på det samme.. jeg er elendig til å forklare her, men det er fordi jeg ikke har snøring.. :lol:

Her snakker jeg om hvordan et programscript oversettes til binære tall.. er det vel. :rolleyes:


#6

Joika sa for siden:

Tallet to, var en leif.


#7

Erica sa for siden:

Nå skjønner jeg at jeg har glemt det meste jeg lærte - for jeg skjønte akkurat så mye at jeg kan vagt huske noe om dette, men ikke nok til å kunne svare deg. (har ingeniørutdanning fra 94 innen IT, men har aldri jobbet innen feltet)


#8

Joika sa for siden:

CPU leser liksom linje for linje.. og hver linje er en byte. Også.. eh...

Jeg tror jeg må skrive en løkke.. binært. :gruble: Wish me luck.


#9

torsk sa for siden:

Det er litt rotete hva du egentlig spør om. Slik jeg tolker det spør du ikke om binære tall spesifikt, men om hvordan man programmerer for en spesifikk prosessor med binære tall.

Typisk brukes en byte (altså 8 bits) til uttrykke hvilken kommando prosessoren skal utføre. Prosessoren leser den, og ut fra hvilken kommando det er så leser den så mange byte videre den trenger for å utføre kommandoen. ADD vil typisk legge sammen de to neste bytene.

Vet ikke om dette hjalp deg noe særlig, men jeg syns det er vanskelig å svare noe mer når jeg ikke vet mer om oppgaven.


#10

torsk sa for siden:

Edit: Jeg ble usikker på hva du mente med "leser linje for linje", så slettet dette.


#11

Esme sa for siden:

Er det Assembly du driver med? Jeg skjønte heller ikke hva oppgaven er. Typisk assemblerkode:

mov ax, 61h (61h er heksadesimalt og angis med en byte); flytt 61h inn i register ax

Binært (noe sånt)
10110000 01100001

Hvor 1011 er mov, 0000 er AX og 01100001 er 61h


#12

Joika sa for siden:

Bingo. :D Du har skjønt hva jeg egentlig mener i allefall.


#13

Joika sa for siden:

Assembly. :jupp:

Jeg debuterte med dette i dag.. klør meg ganske bra i hodet.


#14

Esme sa for siden:

[quote=Joika;1467216]Bingo. :D Du har skjønt hva jeg egentlig mener i allefall.

ADD kan legge sammen variabler som ligger både over og under, bare det refereres til linje.. feks R1, R2 osv. (Det er eksempelet jeg har her i allefall).

Her er eksempelet:

S = 0;
for(i=1;i < 4;i++)
{
S = S + i;
}

0 MOVI R0


#15

Joika sa for siden:

[quote=Esme;1467287]Bortsett fra at jeg ikke skjønner eksempelet heeelt, linje
5 ADD R3


#16

torsk sa for siden:

Nei, her kan du ikke det, for du har bare 2 bit til å uttrykke tallet. Og 2 bit kan bare utrykke 4 verdier (altså tallene 0, 1, 2 og 3).

For å holde uttrykke tallet 6 binært må du ha minst 3 bit.


#17

Elise sa for siden:

Jeg kan iallfall hjelpe deg å skrive 6 binært! Men hva du egentlig spør om, som er noe annet enn bare å regne binært, vet jeg ikke.

Du har 1-ere, 2-ere, 4-ere 8-ere, i motsatt rekkefølge. Med 6 får du ingen 8-ere, men en 4-er og en 2-er. Så da er 6 = 110. Skrevet som en byte blir det 0000 0110.


#18

Esme sa for siden:

Men hva er oppgaveteksten da, Joika?


#19

Joika sa for siden:

Ok, det var det jeg trodde. Og det var også svaret på spørsmålet mitt. :D


#20

Joika sa for siden:

Oppgaven har jeg løst.. den var ikke så vrien. Man skulle bare gjøre om assemblykoden, så løkken bare kjørte to ganger, og ikke tre.

Jeg hadde ikke skjønt hvordan man kunne utrykke høyere tall enn 3 i en byte.. og det går altså ikke heller, så da er jo saken grei. :)


#21

torsk sa for siden:

Flisespikking tidlig på morgenen: Du kan uttrykke tall høyere enn 3 i en byte, siden en byte er 8 bits (da blir høyeste tall 255). Men når man som i oppgaven din bare har 2 bits til rådighet av en byte til til å uttrykke et tall (resten uttrykte vel kommando og referanse), er 3 høyeste verdi, ja.


#22

Elise sa for siden:

Joda, en byte er jo 8 bit, altså 8 1-tall og nuller, som gjør at man kan uttrykke tall opp til, ja, jeg orker ikke regne nå. 2^8-1.

Edit: for seint...


#23

Joika sa for siden:

Aha. Takk, det visste jeg ikke. :)


#24

Joika sa for siden:

Tanken som teller.. :trøste:


#25

mrc sa for siden:

There are only 10 types of people in the world: Those who understand binary, and those who don't... ;-)


#26

Joika sa for siden:

Skjønner det nå. :blunke:

Det er jo leeeeeeeeeeeeeenge siden jeg startet denne tråden. :nemlig:


#27

Inka sa for siden:

Dæven... snakker dere gresk også?


#28

Joika sa for siden:

Det kan sammenlignes med kinesisk fant jeg ut. Kryptisk, men om man glor lenge nok på det, så demrer det litt. :nemlig:


#29

Inka sa for siden:

Hoho, jeg skal prøve å stirre på kinesisk til jeg forstår det! :lol:


#30

Joika sa for siden:

Kinesisk er faktisk ganske morsomt. Tegnene forestiller mennesker, ting osv. Det er ikke bare et tilfeldig oppfunnet språk med streker hit og dit som det ser ut som. :ja:


Foreldreportalen er i en flytteprosess, denne versjonen av FP er fortsatt under utvikling. Hvis du vil svare i tråden, så kan du gjøre det her.