Gå til innhold

Hva er binærkode?


Anbefalte innlegg

Videoannonse
Annonse
Ja, hva er det egentlig, når man snakker om å legge inn binærkode osv.? :roll:

Binærkode vil si maskinkode, altså kode som datamaskinen forstår. Til gjengjeld er slik kode vanskelig å skjønne for mennesker. Koden er også forskjellig på ulike prosessorarkitekturer. Mange linux-distroer finnes til i386, PowerPC, Alpha osv. og det går naturlig nok ikke an å kjøre kode kompilert for andre prosessorer.

 

Det motsatte av binærkode er kildekode, som altså er skrevet i et eller annet programmeringsspråk (f.eks C, C++, Pascal, Fortran osv.) Slik kode er mye enklere å lese for mennesker, men kan ikke umiddelbart forstås av en datamaskin, og må derfor til syvende og sist oversettes til objektkode/maskinkode/binærkode av en kompilator*. Denne prosessen er mer eller mindre enveis - man kan drive reverse-engineering ved å bruke en decompiler/disassembler eller liknende, men mye informasjon går tapt når man kompilerer kode (f.eks forsvinner alle kommentarer, og variabelnavn kan også forsvinne), slik at det kan være en tungvint prosess. Mao spar på kildekoden til egenutviklede programmer i tilfelle du ønsker å modifisere dem seinere :)

 

* Det finnes også interpretede språk som Perl, Python, Tcl og Basic som ikke kompileres men isteden tolkes på "direkten".

Lenke til kommentar
Ja, hva er det egentlig, når man snakker om å legge inn binærkode osv.? :roll:

 

Det er ikke så mye "binærkoding" som "binærregning". Det handler om å bruke det binære tallsystem for å uttrykke noe. Som kjent bruker vi til vanlig titallssystemet, hvor vi har 10 sifre; 0-9. Et tall bestående av N sifre vil da kunne uttrykke 10^N verdier. I det binære tallsystem har vi kun to sifre, 0 og 1. Dette er med andre ord det mest elementære tallsystem som man kan ha. Et tall skrevet på binærform med N sifre, vil kunne uttrykke 2^N verdier. Et binært siffer, 0 eller 1, kaller vi en bit (binary digit).

Noen ganger ser man folk skrive ord på binærform for å virke kule. Datamaskiner kan bruke for eksempel ASCII-systemet for å gjøre tall (som jo er alt en datamaskin forstår) til bokstaver. Her nummereres 256 forskjellige tegn fra 0 til 255 (en oversikt kan du finne på www.asciitable.com). For eksempel ser vi at bokstaven 'H' har tallet 72.

Datamaskiner behandler endimensjonale strømmer av 0 og 1. Det er blitt bestemt at "1 byte" er 8 bits. Altså er en byte en serie av 8 1'ere eller 0'ere. Som jeg skrev tidligere, vil et binært tall med 8 sifre kunne uttrykke 2^8=256 forskjellige verdier. Vi ser at dette samsvarer med antall tegn i ASCII-systemet. Med andre ord må hver bokstav (hvis man følger ASCII-systemet) beskrives med en serie av 8 sifre, som enten er 0 eller 1, og tar altså opp 1 byte.

Når noen sier at de skal skrive "'Hei' i binærkode", mener de at de skal skrive verdiene for 'H', 'e' og 'i' ifølge ASCII med binære tall.

Vi får altså:

H (72, som skrevet med binær blir 01001000)

e (101 --- 01100101)

i (105 --- 01101001)

Altså: 010010000110010101101001

 

Det er viktig å være obs på at linjen over, som er 24 bits lang, bare betyr "Hei" dersom man ser på det gjennom ASCII-øyne, og 'vet' at den inneholder 3 verdier (72, 101, 105), og ikke er én stor verdi, nemlig verdien som vi ville skrevet som 4744553 på titallssytemet.

 

Jah... fløt kanskje litt vekk fra spørsmålet ditt nå, men jeg var så godt i gang! :wink:

Lenke til kommentar
* Det finnes også interpretede språk som Perl, Python, Tcl og Basic som ikke kompileres men isteden tolkes på "direkten".

 

For ikke å glemme .NET-teknologien fra våre gode venner i Seattle, som benytter et IL-språk, som eksekveres innenfor etrammeverk. Ikke det dummeste de har funnet på. Programmerer mye C# under FreeBSD, og det er et meget godt språk.

 

C# ble kjøpt opp av en dansk programmerer - "C++"-utvidelsen av det gamle C er også utviklet av en danske, så de har sannelig taket på dette :D

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...