Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  27 12649
Hei, jeg tengte det hadde vært artig å lære seg å skrive i binær form (Binært tallsystem) Da mener jeg altså 0'ere og 1'ere.
Jeg har lest mange steder, og skjønt hvordan det funker, men hadde vært fint om noen kunne forklare meg det, for det står så mye forskjellig...

Jeg tror jeg har skjønt hvordan tall skrives;
0=0, 1=1, 2=10, 3=11, 4=100, 5=101, 6=110, 7=111, 8=1000, 9=1001, 10=1010 osv.
men jeg har ikke skjønt hvordan det funker med bokstaver
Rett meg hvis jeg tar feil!

Takk for alle svar

Pumazz
For å få det over til bokstaver må du oversette fra binært til ASCII.
Sitat av AtXbYeA
For å få det over til bokstaver må du oversette fra binært til ASCII.
Vis hele sitatet...
Så man kan aldri skrive foreksempel: "Freakforum" i binær form?
Sitat av Pumazz
Så man kan aldri skrive foreksempel: "Freakforum" i binær form?
Vis hele sitatet...
01000110 01110010 01100101 01100001 01101011 01100110 01101111 01110010 01110101 01101101
Sitat av Turbolego
Vis hele sitatet...
Tusen takk! Akkurat det jeg trengte!
Hva som er "rett" eller "feil" skal ikke jeg legge meg borti, men alltid når jeg har programmert adresserbare systemer med totallsystem, vha dipswitcher blir 4=001 og ikke 100. 31=111110, ikke 011111. Mener også jeg lærte på skolen at rekkefølgen var:
1 2 4 8 16 32 64 128 etc.
0 0 0 0 0 0 0 1 =128

edit: Ser jo at den oversetteren lager motsatt rekkefølge av det jeg er vant til..
Sindre: Det er omvendt.
Virker sånn ja. Så da bruker vel leverandøren min ikke binær da, men sitt eget system, som egentlig bare er et baklengs binærsystem.

For når jeg programmerer 00100000 kommer enheten definitivt opp på sentralen som 004
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av Sindre
Hva som er "rett" eller "feil" skal ikke jeg legge meg borti, men alltid når jeg har programmert adresserbare systemer med totallsystem, vha dipswitcher blir 4=001 og ikke 100. 31=111110, ikke 011111. Mener også jeg lærte på skolen at rekkefølgen var:
1 2 4 8 16 32 64 128 etc.
0 0 0 0 0 0 0 1 =128

edit: Ser jo at den oversetteren lager motsatt rekkefølge av det jeg er vant til..
Vis hele sitatet...
Kjem an på om det er big endian eller little endian system. I et little endian kjem least significant bit sist, og det er slik mennesker skriver tall. X86 er little endian system.

I big endian er mest signifikante bit sist, altså slik du har lært det. M.a PowerPC var vel big endian.
Det eneste som er merkelig er at den oversetteren bruker 24 tegn på å skrive "0". Hva er logikken? Er ikke null, null lenger?
ascii null?
One of the good guys
2rs1's Avatar
Sitat av Pumazz
Hei, jeg tengte det hadde vært artig å lære seg å skrive i binær form (Binært tallsystem) Da mener jeg altså 0'ere og 1'ere.
Jeg har lest mange steder, og skjønt hvordan det funker, men hadde vært fint om noen kunne forklare meg det, for det står så mye forskjellig...

Jeg tror jeg har skjønt hvordan tall skrives;
0=0, 1=1, 2=10, 3=11, 4=100, 5=101, 6=110, 7=111, 8=1000, 9=1001, 10=1010 osv.
men jeg har ikke skjønt hvordan det funker med bokstaver
Rett meg hvis jeg tar feil!

Takk for alle svar

Pumazz
Vis hele sitatet...
Om du er interessert i litt lesing om temaet:
kompendie skrevet av knut mørken ved UiO, forklarer det du spør om samt en del annet i samme retning. Særlig kap. 2 og 3.
http://www.uio.no/studier/emner/matn...diet/komp.html
Sitat av slashdot
Kjem an på om det er big endian eller little endian system. I et little endian kjem least significant bit sist, og det er slik mennesker skriver tall. X86 er little endian system.
Vis hele sitatet...
Ikke helt. Endian bestemmer rekkefølgen på bytene, ikke bitene. Forøvrig er det ingen rekkefølger på biter sånn sett, de er nummerert, men hvordan rekkefølge bitene står kan man fantasere om selv. Selv om det er vanligst å tenke på at den minste biten er lengst mot høyre (datamaskiner har selvfølgelig ingen formening om høyre/venstre når de bearbeider biter).

Skal du oversette fra tekst til binær i hodet har du en jobb foran deg. Du kan begynne med å memorere at A har verdien 65, dvs 1000001 i binært og telle deg utover.
Eller så bruker du scien. på windows kalkulatoren.
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av fuzzy76
Ikke helt. Endian bestemmer rekkefølgen på bytene, ikke bitene. Forøvrig er det ingen rekkefølger på biter sånn sett, de er nummerert, men hvordan rekkefølge bitene står kan man fantasere om selv. Selv om det er vanligst å tenke på at den minste biten er lengst mot høyre (datamaskiner har selvfølgelig ingen formening om høyre/venstre når de bearbeider biter).
Vis hele sitatet...
Evt. begge deler. En har CPUer der høgaste minneadresse for en byte er høgste verdi i byten (i.e 2^8) og en har systemer der høgaste minneadresse for en byte er minste verdi (i.e 2^0). Så datamaskiner har ikkje konvensjon om høgre og venstre, men dei har definitivt konvensjon om most significant og least significant bit. Tar du vekk den informasjonen har du ikkej data, men gibberish...

Og alle moderne tallsystem, inkludert binær er basert på posisjoner. Dvs at vekta til det sifferet er gitt av posisjonen til det sifferet. 194 er forskjellig tall fra 149. Romersk tallsystem er derimot ikkje et posisjonsbasert tallsystem - xv og vx er samme tal. Konvensjonen der er største siffer først, også synkande. Men posisjonen gjev ingen informasjon om verdien av sifferet.
Pumazz: En relativt rask metode for å omgjøre fra titallssystemet til totallssystemet er ved heltallsdivisjon samt evaluering om det er et oddetall eller partall. Du skriver bitene fra høyre mot venstre (kommer an på little\big endian)

Ta tallet 37, dette er et oddetall, sett 1
Heltallsdivider 37 med 2, du får 18, partall, sett 0, du har nå 01
Heltallsdivider 18 med 2, du får 9, oddetall, sett 1, du har nå 101
Heltallsdivider 9 med 2, du får 4, partall, sett 0, du har nå 0101
Heltallsdivider 4 med 2, du får 2, partall, sett 0, du har nå 00101
Heltallsdivider 2 med 2, du får 1, oddetall, sett 1, du har nå 100101

Heltallsdividerer du 1 med 2 får du 0, og du er nå ferdig.

37(10) = 100101(2)
▼ ... noen måneder senere ... ▼
Binær: 1 1 1 1 1 1 1 1
Verdi: 1 2 4 8 16 32 64 128

er dette riktig oppfattet? Eller?
Det er egentlig motsatt. I praksis kan man se det begge veier, men det vanlige er å skrive de høyeste verdiene først, akkurat som i titallssystemet vi bruker til daglig. Der har vi de viktigste sifrene til venstre, og de minst viktige (de med lavest verdi) til høyre.

Totallssystemet: 128 64 32 16 8 4 2 1
Titallssystemet: 1000000 100000 10000 1000 100 10 1
Sist endret av fuzzy76; 12. november 2008 kl. 14:43.
sindre@puse.cat:~$
Synderen's Avatar
Sitat av Ztratoz90 Vis innlegg
Binær: 1 1 1 1 1 1 1 1
Verdi: 1 2 4 8 16 32 64 128

er dette riktig oppfattet? Eller?
Vis hele sitatet...
Ikke helt, 10000000 vil være 128, og 11111111 er 255.
uhm... okey.. la meg prøve på nytt :P

1 = 1?
01 = 2?
001 = 4?
0001 = 8?
1001 = 9?

Har jeg forstått det nå? :P
Sist endret av Ztratoz90; 12. november 2008 kl. 15:06.
Nei
1 og 01 er akkurat samme tall på binærform.

Akkurat som at 1 og 01 er akkurat det samme tallet i desimalform.

1
10
11
100
101
110
111
1000 osv....

Null foran et tall har ingen betydning, akkurat som du lærte på barneskolen.
Sist endret av fuzzy76; 12. november 2008 kl. 15:11.
hvis jeg snur på de jeg skrev får jeg...

1=1?
10=2?
11=3?
100=4?
1000=8?
1001=9?

Nærmer jeg meg nå?
Ja, det er riktig
Hehe, Endelig har jeg forstått det, og endelig skal jeg reise hjem fra jobb xD
Jeg syntes det er enklere å regne det på denne måten
La oss si at du har tallet
1 1 1 1 1 1 1 1 1
256 128 64 32 16 8 4 2 1

Da kan du bare legge de sammen. 256+128+64+32+16+8+4+2+1 = 511.

1 0 1 0 1 0
32 16 8 4 2 1

32+8+2 = 42.

Enklere da?
One of the good guys
2rs1's Avatar
1111 = 1 * 2^3 + 1 * 2^2 + 1 * 2^1 + 1 * 2^0
1000 = 1 * 2^3
1 = 0001 = 1 * 2^0

Noe som gjelder for alle tallsystemet.. Bare endre hva man opphøyer.
Jepp. Viktig å huske at x^0 er 1 ihvertfall.