Discussion:
Fil data størrelse
(for gammel til at besvare)
Jasper
2010-07-16 10:36:41 UTC
Permalink
Hej

Nu har jeg ledt rundt på nettet og har ikke kunnet finde noget godt
svar på hvorfor man har valgt at kb er 1024 bytes og ikke 1000 bytes.
Er det fordi der er nogen hardware-mæssigt årsag til at det er nemmere
at lagre 1024 bytes af data istedet for 1000?
Jeg er med på at 2^13 bit er 1 kB, men hvorfor skal dette være? Et
endnu dummere spørgsmål, hvorfor har man valgt 8 bit til at
representere 1 byte? Er der noget belæg for ikke at have valgt 4 eller
12 i stedet?
Er det hele fordi man har tænkt at det er smart at have det som 2^x,
fordi det er nemmere at regne med el.lgn.?

På forhånd tak!
cykelsmeden
2010-07-16 14:39:11 UTC
Permalink
Post by Jasper
Nu har jeg ledt rundt på nettet og har ikke kunnet finde noget godt
svar på hvorfor man har valgt at kb er 1024 bytes og ikke 1000 bytes.
Er det fordi der er nogen hardware-mæssigt årsag til at det er nemmere
at lagre 1024 bytes af data istedet for 1000?
Som du selv er inde på, er det fordi vi tæller binært.
Post by Jasper
Jeg er med på at 213 bit er 1 kB, men hvorfor skal dette være?
???
Et
Post by Jasper
endnu dummere spørgsmål, hvorfor har man valgt 8 bit til at
representere 1 byte? Er der noget belæg for ikke at have valgt 4
næ, faktisk var de første små computere 4bit.
Da computere så pludseligt blev hvermandseje (z80-PET-comodore-Atari-PC
etc) var standarden 8bit, og det blev så de facto standard for tegnsæt,
instruktionssæt osv.

eller
Post by Jasper
12 i stedet?
12 er ikke et hensigtsmæssigt tal binært, da hvert ciffer dobler op!
1-2-4-8-16-32-64 osv
Post by Jasper
Er det hele fordi man har tænkt at det er smart at have det som 2^x,
fordi det er nemmere at regne med el.lgn.?
Hverken eller. Det er fordi computere tænker sådan - og derfor nemmere.

iøvrigt er det talsystem ældgammelt. Blandt stammefolk i fjernøsten kan
du finde vægte med lodder baseret på "dobbelt op" - altså binær princippet.

kommer til at tænke på mit første besøg på en computerfabrik i Taiwan
primo 80. De producerede IPMpckloner i stor mængde. Kontormandskabet
bestod af ~25 damer der eksellerede medhver sin kugleramme, og jeg
garanterer de hver var væsentligt hurtigere end en dansk ditto :)

finn
Rado
2010-07-17 04:22:14 UTC
Permalink
Post by cykelsmeden
iøvrigt er det talsystem ældgammelt. Blandt stammefolk i fjernøsten kan
du finde vægte med lodder baseret på "dobbelt op" - altså binær princippet.
Den ældgamle kinesiske spådomsbog I Ching er også baseret på
binærprincippet (64 bit). Der findes et helt website om det, desværre
nu kun på koreansk:

http://69yinyang.com/

Men jeg nåede lige at snuppe en kopi af en side fra den engelske
udgave af sitet, da den endnu eksisterede:

http://miscfiles.net/temp/0001/ichingbin
--
Rado
"Den genetiske kode minder ikke om software - den ER software,
blot mere avanceret end noget, vi nogensinde har fundet på."
- Bill Gates
Adam Sjøgren
2010-07-16 17:44:34 UTC
Permalink
Post by Jasper
Nu har jeg ledt rundt på nettet og har ikke kunnet finde noget godt
svar på hvorfor man har valgt at kb er 1024 bytes og ikke 1000 bytes.
Du kan læse en del om det på wikipedia:

* http://en.wikipedia.org/wiki/Kilobyte
Post by Jasper
Er det fordi der er nogen hardware-mæssigt årsag til at det er nemmere
at lagre 1024 bytes af data istedet for 1000?
I edb bruges binære tal meget. 1024 er sådan en dejligt rundt tal, som
Post by Jasper
Jeg er med på at 2^13 bit er 1 kB, men hvorfor skal dette være?
Det er nemmest at regne med, adressere og tænke i runde tal.

KB/MB/GB betyder desværre forskellige ting alt efter sammenhængen; i
dk.edb.system.unix var der en der engang opsummerede det således:

"Så skal man bare huske at netværk bliver lavet af
ingeniører, RAM af computerfolk og harddiske af fjolser."
Post by Jasper
Et endnu dummere spørgsmål, hvorfor har man valgt 8 bit til at
representere 1 byte?
Hvis du spørger en amerikaner, så er der kun 7 bit på et (ASCII) tegn
:-)

8 er også et dejligt rundt tal, og 4 bit er lige i underkanten hvis man
gerne vil kunne indkode alle tegn i alfabetet i en byte, så det er
oplagt at gå et trin op, til 8.

Siden opdagede edb-folk at 256 tegn nok også er lige i underkanten; det
blev så til unicode, der bl.a. har en 16 bit indkodning.
Post by Jasper
Er der noget belæg for ikke at have valgt 4 eller 12 i stedet?
4 bit giver som sagt lidt få muligheder (hvis man kun havde de første 16
tegn i alfabetet ville jeg få problemer med at skrive mine initialer :-))

12 er ikke en potens af 2. (Der har dog været sjove systemer der ikke
brugte potenser af 2).
Post by Jasper
Er det hele fordi man har tænkt at det er smart at have det som 2^x,
fordi det er nemmere at regne med el.lgn.?
Yep, runde tale er nemmest.


Mvh.

Adam
--
"En fjern transistor stiller ind på Kalundborg" Adam Sjøgren
***@koldfront.dk
Adam Sjøgren
2010-07-16 17:49:38 UTC
Permalink
Post by Jasper
Nu har jeg ledt rundt på nettet og har ikke kunnet finde noget godt
svar på hvorfor man har valgt at kb er 1024 bytes og ikke 1000 bytes.
Du kan læse en del om det på wikipedia:

* http://en.wikipedia.org/wiki/Kilobyte
Post by Jasper
Er det fordi der er nogen hardware-mæssigt årsag til at det er nemmere
at lagre 1024 bytes af data istedet for 1000?
I edb bruges binære tal meget. 1024 er sådan en dejligt rundt tal, som
Post by Jasper
Jeg er med på at 2^13 bit er 1 kB, men hvorfor skal dette være?
(Du mener 2^10, ikke? 2^13 er 8192 :-))

Det er nemmest at regne med, adressere og tænke i runde tal.

KB/MB/GB betyder desværre forskellige ting alt efter sammenhængen; i
dk.edb.system.unix var der en der engang opsummerede det således:

"Så skal man bare huske at netværk bliver lavet af
ingeniører, RAM af computerfolk og harddiske af fjolser."
Post by Jasper
Et endnu dummere spørgsmål, hvorfor har man valgt 8 bit til at
representere 1 byte?
Hvis du spørger en amerikaner, så er der kun 7 bit på et (ASCII) tegn
:-)

8 er også et dejligt rundt tal, og 4 bit er lige i underkanten hvis man
gerne vil kunne indkode alle tegn i alfabetet i en byte, så det er
oplagt at gå et trin op, til 8.

Siden opdagede edb-folk at 256 tegn nok også er lige i underkanten; det
blev så til unicode, der bl.a. har en 16 bit indkodning.
Post by Jasper
Er der noget belæg for ikke at have valgt 4 eller 12 i stedet?
4 bit giver som sagt lidt få muligheder (hvis man kun havde de første 16
tegn i alfabetet ville jeg få problemer med at skrive mine initialer :-))

12 er ikke en potens af 2. (Der har dog været sjove systemer der ikke
brugte potenser af 2).
Post by Jasper
Er det hele fordi man har tænkt at det er smart at have det som 2^x,
fordi det er nemmere at regne med el.lgn.?
Yep, runde tal er nemmest.


Mvh.

Adam
--
"En fjern transistor stiller ind på Kalundborg" Adam Sjøgren
***@koldfront.dk
Bertel Lund Hansen
2010-07-18 22:28:08 UTC
Permalink
Post by Jasper
Nu har jeg ledt rundt på nettet og har ikke kunnet finde noget godt
svar på hvorfor man har valgt at kb er 1024 bytes og ikke 1000 bytes.
Det er besvaret.
Post by Jasper
Jeg er med på at 2^13 bit er 1 kB
Det er forkert. Det er 2^10 der er 1 kbyte.
Post by Jasper
Et endnu dummere spørgsmål, hvorfor har man valgt 8 bit til at
representere 1 byte?
Det er et spørgsmål om definition. Men dit spørgsmål går vel
snarere på hvorfor vi bruger 8-bit processorer (samt deres
afløsere: 16-, 32 og 64-bit CPU'er). Det er fordi 8 hører til det
binære talsystem og fordi mindre enheder giver ineffektive
systemer - jf. at man går fra 8 til 16 bit osv. Men der er skam
udviklet computere med i hvert fald 4-bit og 7-bit enheder.
Post by Jasper
Er der noget belæg for ikke at have valgt 4 eller 12 i stedet?
4-bit er for småt, og 12 bit er for skævt.
Post by Jasper
Er det hele fordi man har tænkt at det er smart at have det som 2^x,
fordi det er nemmere at regne med el.lgn.?
En computer kan regne med hvad som helst, men hardwaren er
baseret på 2-talssystemet, og så er det
nemmere/billligere/hurtigere at lave rent binære enheder.
--
Bertel
http://bertel.lundhansen.dk/ FIDUSO: http://fiduso.dk/
Finn Stampe Mikkelsen
2010-07-24 00:04:35 UTC
Permalink
Post by Bertel Lund Hansen
Det er et spørgsmål om definition. Men dit spørgsmål går vel
snarere på hvorfor vi bruger 8-bit processorer (samt deres
afløsere: 16-, 32 og 64-bit CPU'er). Det er fordi 8 hører til det
binære talsystem og fordi mindre enheder giver ineffektive
systemer - jf. at man går fra 8 til 16 bit osv. Men der er skam
udviklet computere med i hvert fald 4-bit og 7-bit enheder.
Univac 1100 mainframes fra 70'erne & 80'erne benyttede faktisk 9-bit ASCII
bytes (6-bit Fieldata) og regnede internt i et 36-bit ord. Der kunne
arbejdes i word, ½word, 1/3 word, 1/4 word eller 1/6 word...

Om dette stadigt er tilfældet for deres mainframes (hvis de overhovedet
laves stadigt laves/leveres) ved jeg ikke...

/Finn
cykelsmeden
2010-07-24 08:06:43 UTC
Permalink
Post by Finn Stampe Mikkelsen
Univac 1100 mainframes fra 70'erne & 80'erne benyttede faktisk 9-bit
ASCII bytes (6-bit Fieldata)
er du sikker på at den 9 bit ikke bare var en paritetsbit, som kun
indgik i hardwarehåndteringen?
- den var i hvert tilfælde ikke ualmindeligt dengang.

finn
Finn Stampe Mikkelsen
2010-07-24 15:50:29 UTC
Permalink
Post by Finn Stampe Mikkelsen
Univac 1100 mainframes fra 70'erne & 80'erne benyttede faktisk 9-bit
ASCII bytes (6-bit Fieldata)
er du sikker på at den 9 bit ikke bare var en paritetsbit, som kun indgik
i hardwarehåndteringen?
- den var i hvert tilfælde ikke ualmindeligt dengang.
finn
Har ikke arbejdet med den maskine siden 1985, så kan ikke huske det så
specifikt. Men husker en ting og det er, at processoren (op til 6) arbejdede
med 36 bit og at det var opdelt som jeg beskrev. Om så den 9. bit blev brugt
til paritet, kan jeg som sagt ikke huske...

Læs evt. mere her: http://en.wikipedia.org/wiki/UNIVAC_1100/2200_series

/Finn
Ivar
2010-07-25 12:45:59 UTC
Permalink
Post by Jasper
Nu har jeg ledt rundt på nettet og har ikke kunnet finde noget godt
svar på hvorfor man har valgt at kb er 1024 bytes og ikke 1000 bytes.
Er det fordi der er nogen hardware-mæssigt årsag til at det er nemmere
at lagre 1024 bytes af data istedet for 1000?
Ja, data gemmes binært, derfor er tal som 2, 4, 8, 16, 32, 64, 128,
256, 512, 1024 osv. naturlige afgrænsninger i en computer.
For at gøre det simplere bruger man betegnelserne kilo, mega,
giga og tetra.
2^10 = 1024 = 1 kilo
2^20 = 1024 * 1024 = 1024 kilo = 1 mega = 1.048.576
2^30 = 1024 * 1024 * 1024 = 1024 mega = 1 giga = 1.073.741.824

I dag er hukommelser i computere meget store. Tidligere var det
ikke ualmindeligt at computere havde hukommelser der var opbygget
af integrerede kredse, der havde en størrelse af fx 2048 bytes (2 kB).
Der skulle 11 ledninger ind til kredsen, for at kunne vælge
mellem de 2048 hukommelsespladser. Det ville være upraktisk
og spild kun at lægge 2000 hukommelsespladser i kredsen. Da man
lavede integrerede kredse med større hukommelse, kunne man fx vælge
at 10 ledninger skulle udvælge en hukommelsesplads af to gange,
man fik så 2^20 bytes (1 MB) at vælge imellem. Hver dataplads
bestod ofte af 8 bit.
Post by Jasper
Jeg er med på at 2^13 bit er 1 kB, men hvorfor skal dette være? Et
endnu dummere spørgsmål, hvorfor har man valgt 8 bit til at
representere 1 byte? Er der noget belæg for ikke at have valgt 4 eller
12 i stedet?
Da man lavede computere af radio-rør og transistorer havde det ikke
den store betydning om man valgte det ene eller det andet antal
bit til datastørrelse. Fx havde den første mini-computer der kunne
sælges til under 20.000 dollers en databredde på 12 bit.
http://en.wikipedia.org/wiki/PDP-8 (bemærk: at Digital brugte oktale
og ikke hexadecimale tal).
Senere begyndte man at bruge integrerede kredse til at opbygge
computerne af. De havde typisk en bredde af 8, så disse computere
havde typisk en databredde på 8, 16, 24, 32 eller et andet multipla
af 8. Derfor blev det praktisk at omtale en databredde på 8 som en
byte.

Som kuriosum kan det nævnes, at omkring 1985 vedtog man i Sverige at 1
kB (i reklamer) skulle være lig 1000 bytes, og ikke 1024 som i resten
af verden. Det var meget upraktisk, og man gik hurtigt bort fra det.


Ivar Magnusson

Loading...