Toon posts:

ASCII uitleg

Pagina: 1
Acties:
  • 5.492 views

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hai!

Ik ben eens wat dingen aan het opzoeken over ASCII, maar ik kom er niet uit. Heb mezelf deze vragen gesteld, en de antwoorden daarop gegeven:

Wat betekend ASCII
American standard Code for Information Interchange.
Amerikaanse standaard code voor informatie uitwisseling.

Wat is ASCII

ASCII is wereldwijd geaccepteerde standaard waarin de betekenis van tekens is vastgelegd.

ASCII bestaat uit 8 bit. Alle waarden uit de ASCII tabel bestaan uit 7 bit. Bijvoorbeeld DEL: 1111111. De 8ste bit wordt gebruikt als fout detecterende code.
Waar wordt ASCII voor gebruikt?

ASCII wordt gebruikt om van binaire code om te zetten in taal wat gebruikers kunnen lezen en begrijpen.

Waarom is ASCII zo groot?
ASCII is zo groot omdat het inmiddels een wereldwijd geaccepteerde standaard is.


maar er klopt geloof ik geen zak van, en bijvoorbeeld bij "Waarom is ASCII zo groot" wat heeft ertoe bijgedragen dat ASCII tot een standaard is uitgeroepen, en niet bijvoorbeeld een andere tekenset?

Daan,
Snapt er niet veel van. :|

Acties:
  • 0 Henk 'm!

  • Avalaxy
  • Registratie: Juni 2006
  • Laatst online: 02-10 14:49
Is het niet simpelweg omdat de opmars van computers vooral in Westerse landen is gebeurd en er daarom geen noodzaak was voor een universele tekenset die alle talen dekt?

Zie:
Back in the semi-olden days, when Unix was being invented and K&R were writing The C Programming Language, everything was very simple. EBCDIC was on its way out. The only characters that mattered were good old unaccented English letters, and we had a code for them called ASCII which was able to represent every character using a number between 32 and 127.

[ Voor 56% gewijzigd door Avalaxy op 03-11-2011 10:02 ]


Acties:
  • 0 Henk 'm!

  • Mr. Awesome
  • Registratie: Januari 2006
  • Laatst online: 26-08 18:34

Mr. Awesome

Vroeger hyptonize

ASCII is toch opgevolgd door UTF-8?

Acties:
  • 0 Henk 'm!

  • Tp21
  • Registratie: December 2003
  • Laatst online: 28-08 15:22
hyptonize schreef op donderdag 03 november 2011 @ 10:00:
ASCII is toch opgevolgd door UTF-8?
ASCII is opgevolgd door unicode, UTF-8 is de meest gebruikte manier om unicode te representeren, maar zeker niet de enigste.

Acties:
  • 0 Henk 'm!

  • HellPunk
  • Registratie: September 2002
  • Laatst online: 02-10 14:51
Er is niet één specifieke reden aan te duiden waarom ASCII lange tijd de standaard was (al klopt dat eigenlijk ook niet helemaal, ASCII bestond naast een aantal andere standaarden). ASCII zoals wij het kennen is ook niet 'ineens' ontstaan, Het Wikipedia-artikel over ASCII geeft wat meer inzicht in het hoe en waarom.

It's still magic even if you know how it's done. (Terry Pratchett, A Hat Full of Sky)


Acties:
  • 0 Henk 'm!

  • MLM
  • Registratie: Juli 2004
  • Laatst online: 12-03-2023

MLM

aka Zolo

ASCII is een veel gebruikte (oude) tekenset, die populair is/was omdat:
1) je kan er westerse tekst mee weergeven
2) alle tekens 1 byte, dus vrij "klein" in omvang (vooral vroeger belangrijk)
3) mapte vroeger direct van keyboard->teken (daarom heb je ook "control characters" die in tekst niet voorkomen, zoals "backspace")

De 8e bit is trouwens niet foutdetecterend, die is in ASCII standaard 0. Omdat die ene bit "verspild" is, zijn er veel extended-ASCII tekensets (ook wel ANSI codepages), die de 128 extra waardes aan taal/regio-specifieke tekens hangen, bijvoorbeeld de veelgebruikte (hier dan) 1252 (Western Europe/Latin) die tekens als À bevat (klinkers met accenten).

ASCII en ANSI zijn vervangen door Unicode, waarin alle tekens zijn opgenomen.

UTF-8 (een specifieke Unicode codering) garandeerd dat ASCII tekens gecodeerd in UTF-8 overeen komen met de ASCII bytes, je kan dus ASCII inlezen als UTF-8, en UTF-8 als ASCII (indien je alleen ASCII karakters in je Unicode hebt natuurlijk). (Dat grapje gaat trouwens niet op voor ANSI, die extra "verspilde" bit word door UTF-8 gebruikt om multi-byte pairs te maken)

[ Voor 14% gewijzigd door MLM op 03-11-2011 10:07 ]

-niks-


Acties:
  • 0 Henk 'm!

  • tech-no-logical
  • Registratie: December 2000
  • Laatst online: 17-09 22:52
ASCII stamt uit de tijd van de telegraaf, toen men nog niet zoveel belang had bij 'moeilijke' characters, en toen de control-codes in de ASCII tekenset nog betekenis hadden. het was waarschijnlijk ook een van de eerste formele character-sets die een digitale representatie had, en zo een defacto standaard werd. dat-ie nog steeds bestaat is een kwestie van backward compatibility, gok ik.

niet gelezen, maar vast een schat aan info : https://en.wikipedia.org/wiki/ASCII

Acties:
  • 0 Henk 'm!

  • Magic
  • Registratie: September 2001
  • Niet online
Een hele mooie uitleg over ascii en unicode (als je engels kan) vind ik deze nog altijd:

http://www.joelonsoftware.com/articles/Unicode.html

[ Voor 8% gewijzigd door Magic op 03-11-2011 10:09 ]

Steam: Brainfrz82 | PSN: Brainfrz | Discord: Brainfrz


Acties:
  • 0 Henk 'm!

  • Mr. Awesome
  • Registratie: Januari 2006
  • Laatst online: 26-08 18:34

Mr. Awesome

Vroeger hyptonize

En met ASCII kon je natuurlijk hele leuke ASCII-art maken. :+

Acties:
  • 0 Henk 'm!

  • kaos001
  • Registratie: Augustus 2005
  • Laatst online: 05-09 09:25
hyptonize schreef op donderdag 03 november 2011 @ 10:09:
En met ASCII kon je natuurlijk hele leuke ASCII-art maken. :+
Afbeeldingslocatie: http://www.codeproject.com/KB/web-image/AsciiArt/ASCIIArt2.gif

Van grote afstand bekijken, echt geweldig :)

Soundcloud


Acties:
  • 0 Henk 'm!

  • kKaltUu
  • Registratie: April 2008
  • Laatst online: 02-09 19:59

kKaltUu

Profesionele Forumtroll

Magic schreef op donderdag 03 november 2011 @ 10:09:
Een hele mooie uitleg over ascii en unicode (als je engels kan) vind ik deze nog altijd:

http://www.joelonsoftware.com/articles/Unicode.html
Dit zeker, toen ik over charsets zat te zoeken was dit al eens gepost, een van de beste artikelen die een hele goede, begrijpelijke beschrijving hierover geeft.

Bovenstaande is mijn post. Lees deze aandachtig, dank u wel voor uw medewerking.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kKaltUu schreef op donderdag 03 november 2011 @ 10:21:
[...]

Dit zeker, toen ik over charsets zat te zoeken was dit al eens gepost, een van de beste artikelen die een hele goede, begrijpelijke beschrijving hierover geeft.
MLM schreef op donderdag 03 november 2011 @ 10:04:
ASCII is een veel gebruikte (oude) tekenset, die populair is/was omdat:
1) je kan er westerse tekst mee weergeven
2) alle tekens 1 byte, dus vrij "klein" in omvang (vooral vroeger belangrijk)
3) mapte vroeger direct van keyboard->teken (daarom heb je ook "control characters" die in tekst niet voorkomen, zoals "backspace")

De 8e bit is trouwens niet foutdetecterend, die is in ASCII standaard 0. Omdat die ene bit "verspild" is, zijn er veel extended-ASCII tekensets (ook wel ANSI codepages), die de 128 extra waardes aan taal/regio-specifieke tekens hangen, bijvoorbeeld de veelgebruikte (hier dan) 1252 (Western Europe/Latin) die tekens als À bevat (klinkers met accenten).

ASCII en ANSI zijn vervangen door Unicode, waarin alle tekens zijn opgenomen.

UTF-8 (een specifieke Unicode codering) garandeerd dat ASCII tekens gecodeerd in UTF-8 overeen komen met de ASCII bytes, je kan dus ASCII inlezen als UTF-8, en UTF-8 als ASCII (indien je alleen ASCII karakters in je Unicode hebt natuurlijk). (Dat grapje gaat trouwens niet op voor ANSI, die extra "verspilde" bit word door UTF-8 gebruikt om multi-byte pairs te maken)
Bedankt voor alle reacties! Maar wat wordt dan verstaan onder westerse tekens? Apostofjes, etc?
ow, dus die laatse bit doet eigenlijk helemaal niks?

Acties:
  • 0 Henk 'm!

  • Ghehe
  • Registratie: April 2011
  • Laatst online: 26-09 23:25

Ghehe

400 pound hacker

Verwijderd schreef op donderdag 03 november 2011 @ 10:28:
[snip snip snip]


[snip snip snip]


Bedankt voor alle reacties! Maar wat wordt dan verstaan onder westerse tekens? Apostofjes, etc?
ow, dus die laatse bit doet eigenlijk helemaal niks?
ASCII is gewoon een standaard waar elk teken door 1 byte (=8-bit of 2 hexadecimale cijfers) wordt voorgesteld.
8-bit betekent 2^8=256 mogelijkheden.

Echter heeft de engelse taal genoeg met 128 tekens om alles voor te stellen. Wat dus overeenkomt met de eerste bit op nul te laten staan. Dit is Latin. Sommige westerse talen hadden er echter wat meer nodig omdat deze gebruik maken van diakritische tekens (é, è, à, ç, ù, en dergelijke (denk aan Frans en Duits). => Latin-1 (welke dus wel de 256 mogelijkheden benut)

Maar dan bleek 256 mogelijkheden te weinig te zijn voor andere talen (oosterse enzo), dus kwamen ze met Unicode op de proppen, een 16-bit systeem (dus elk teken wordt voorgesteld door 16-bit in plaats van 8-bit zoals hierboven). 16-bit is 2^16=65536 mogelijkheden.

Genoeg voor elke taal/karakter dus. :+


P.S.: Dit is wat in mijn boek van Computersystemen stond voor school, of het correct is weet ik niet, maar zo moet ik het leren. :p

[ Voor 3% gewijzigd door Ghehe op 03-11-2011 13:47 ]


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Ghehe schreef op donderdag 03 november 2011 @ 13:42:
[...]


ASCII is gewoon een standaard waar elk teken door 1 byte (=8-bit of 2 hexadecimale cijfers) wordt voorgesteld.
8-bit betekent 2^8=256 mogelijkheden.

Echter heeft de engelse taal genoeg met 128 tekens om alles voor te stellen. Wat dus overeenkomt met de eerste bit op nul te laten staan. Dit is Latin. Sommige westerse talen hadden er echter wat meer nodig omdat deze gebruik maken van diakritische tekens (é, è, à, ç, ù, en dergelijke (denk aan Frans en Duits). => Latin-1 (welke dus wel de 256 mogelijkheden benut)
ASCII is een 7-bits characterset, dat betekent dat je bij verzenden dus óf kan kiezen om per 7 bits te versturen (bespaart 1 byte per 8 tekens ofwel 12,5%), of om de 8e bit als parity te gebruiken. Tegenwoordig wordt de 8e bit 0 gelaten, of gebruikt voor een van de extended ASCII sets. Dat is hoofdzakelijk een gevolg van het feit dat we tegenwoordig geen 7 bits transmissies meer gebruiken, en dat er ook bijna nooit meer parity per single byte gebruikt wordt.

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
Ghehe schreef op donderdag 03 november 2011 @ 13:42:
[...]

Maar dan bleek 256 mogelijkheden te weinig te zijn voor andere talen (oosterse enzo), dus kwamen ze met Unicode op de proppen, een 16-bit systeem (dus elk teken wordt voorgesteld door 16-bit in plaats van 8-bit zoals hierboven). 16-bit is 2^16=65536 mogelijkheden.

Genoeg voor elke taal/karakter dus. :+
Unicode zegt helemaal niks over de representatie, en er zijn ook meer dan 65536 unicode code points. Dus 16 bits is niet voldoende om die allemaal te kunnen representeren. Er is natuurlijk ook een reden dat UTF-32 bestaat ;)

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Magic schreef op donderdag 03 november 2011 @ 10:09:
Een hele mooie uitleg over ascii en unicode (als je engels kan) vind ik deze nog altijd:

http://www.joelonsoftware.com/articles/Unicode.html
^^^ geweldig artikel. Dan is het meteen duidelijk :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb nu dit, vmet behulp van jullie ben ik zover gekomen. De info die er staat, klopt dat?


Wat is ASCII

ASCII is wereldwijd geaccepteerde standaard waarin de betekenis van tekens is vastgelegd.

ASCII bestaat uit 8 bits. Alle waarden uit de ASCII tabel bestaan uit 7 bits. De 8ste kon worden gebruikt voor andere sets. Zo kwam IBM met een set met horizontale en verticale streepjes, vierkantjes etc.
Toen er meer PCs buiten Amerika werken verkocht kwamen er steeds meer van dit soort sets, want elk land/regio had weer andere tekens nodig, die niet in de standaard ASCII set zaten. Zo kon bijvoorbeeld een Russische PC niet zomaar naar Israël worden verstuurd, omdat de tekens 128-255 een andere betekenis hadden.

Waarom is ASCII zo groot?
ASCII is een wereldwijd geaccepteerde standaard. Dit is het geworden mede omdat het maar 1 bit per teken vereist, wat vooral vroeger erg belangenrijk was. Ook kan ASCII alle westerse tekens weergeven

Acties:
  • 0 Henk 'm!

  • hiekikowan
  • Registratie: Februari 2011
  • Laatst online: 01-10 10:05
Hey Daantjuhh! :D

Volgens mij gebruikt ASCII toch echt geen 1 bit per teken, dat zou neerkomen op slechts negen tekens... er worden 7 bits gebruikt voor bijvoorbeeld Engels, voor Frans en Duits e.d. worden zelfs acht tekens gebruikt.

ASCII is vooral groot geworden omdat dit de eerste belangrijke standaard binnen nieuw opkomende technologie in de jaren 60 was. Op dat moment was er dus geen echt goed alternatief. Later is ASCII vervangen door onder andere UNICODE, welke als voordeel had dat het voor iedere taal gelijk blijft, terwijl ASCII dus voor Frans, Duits e.d. andere tekensets nodig had.

Waar heb je dit overigens voor nodig?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hai!

8 bit is 1 byte toch? en 1 teken was toch bijvoorbeeld 0000001 met 1 reserve bit voor andere sets ?

Wil het voor mezelf een op een rijtje hebben:)

Acties:
  • 0 Henk 'm!

  • hiekikowan
  • Registratie: Februari 2011
  • Laatst online: 01-10 10:05
8 bits zijn inderdaad 1 byte, maar in jouw laatste alinea zeg je dat je maar 1 bit per teken gebruikt... en dat klopt dus niet...
en 1 teken was toch bijvoorbeeld 0000001 met 1 reserve bit voor andere sets ?
Dat is geheel afhankelijk van welk teken je hebt... je zou ook 1100101 kunnen hebben, dat is dus meerdere bits en een nul toevoegen aan het begin geeft je dan een byte...

offtopic:
Lekker hé, bits en bytes... 8)7 8)7

[ Voor 40% gewijzigd door hiekikowan op 04-11-2011 10:16 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oeps, ik bedoel natuurlijk 1 byte per teken! van die ene byte, word 7 bits gebruikt voor de ASCII set(0-128?) en de laatste bit wordt gebruikt voor externe sets? (128-255) Die laatste bit kan voor elk land of regio een andere betekenis hebben.

\

Acties:
  • 0 Henk 'm!

  • hiekikowan
  • Registratie: Februari 2011
  • Laatst online: 01-10 10:05
Dat klopt volgens mij helemaal... Echter nog steeds geen antwoord waar je dit voor nodig hebt...? Waar ben je nu weer mee bezig? :D

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ok top! Bedankt voor je hulp ;-)

Heb dat nooit echt gesnapt, en wou het nu eens duidelijk hebben!

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben hier weer! Heb besloten het uitgebreider te doen.. Nu google ik me lam, maar overal staat weer iets anders.

Hoe zit het met de locatie van ASCII? Is dit hard- of software matig? Ik dacht dat het misschien op een chip staat binnen de pc, bij een toetsaanslag wordt er in de tabel gekeken op de chip en zo weet de pc wat er moet worden gedaan?

Waarom eigenlijk 128 tekens? Heeft dat te maken met 128byte PC's?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op vrijdag 11 november 2011 @ 15:16:
Hoe zit het met de locatie van ASCII? Is dit hard- of software matig?
Het is gewoon een bult enen en nullen en daar koppelen wij een betekenis aan. Doet 't er toe wat de "locatie" zou zijn? Al komt 't uit de hemel vallen... 010000012 = 6510 = 4116 = "A"ASCII.
(Getallen en talstelsels FAQ)
Verwijderd schreef op vrijdag 11 november 2011 @ 15:16:
Ik dacht dat het misschien op een chip staat binnen de pc, bij een toetsaanslag wordt er in de tabel gekeken op de chip en zo weet de pc wat er moet worden gedaan?
Een PC heeft geen benul van "A" of "X" of whatever; een PC kent enkel nullen en enen. En bij de combinatie 01010101 doet 'ie dit en bij de combinatie 01010110 doet 'ie dat. Als jij 01010101 liever als "U" leest en 01010110 als "V"; prima. Maar dat zal je PC dus roesten. Als ik BSCII zou verzinnen en vind dat 01010101 overeenkomt met "Q" dan is "U"ASCII == "Q"BSCII. Met andere woorden: ASCII is niets anders dan een afspraak over welke combinatie van bits welke letter (of karakter) representeert. Dat is wel zo handig om te standaardiseren; anders lullen we allemaal langs elkaar ;) En dus heeft iemand voor alle 128 mogelijke combinaties van 7 bits vastgelegd welke combinatie welk karakter voor moet stellen en dat gestandaardiseerd.
Verwijderd schreef op vrijdag 11 november 2011 @ 15:16:
Waarom eigenlijk 128 tekens? Heeft dat te maken met 128byte PC's?
Omdat je met 7 bits 128 combinaties kunt maken (het overblijvende, 8ste bit, ook wel MSB, werd gebruikt voor parity doeleinden). "128byte PC's" is onzin; sowieso hebben we het in deze context over bits (32 bits PC / 64 bits PC etc.) en niet over bytes. Eén byte is (normaliter) 8 bits. 2 Bytes = 16 bits. 4 Bytes = 32 bits enz.

Met 1 bit kun je 2 combinaties maken: 0 en 1
Met 2 bits kun je 4 combinaties maken: 00, 01, 10, 11
Met 3 bits kun je 8 combinaties maken: 000, 001, 010, 011, 100, 101, 110, 111
...
Met 7 bits kun je 128 combinaties maken
Met 8 bits kun je 256 combinaties maken
...
Met 16 bits kun je 65.536 combinaties maken
...
Met 32 bits kun je 4.294.967.296 combinaties maken
...
Met 64 bits kun je 18.446.744.073.709.551.616 combinaties maken
...
Met 128 bits kun je 340.282.366.920.938.463.463.374.607.431.768.211.456 combinaties maken

Zou je een "128 byte PC hebben" dan zou je dus een "1.024 bit PC hebben" :P Een 1024 bit getal is heul groot ;)

[ Voor 55% gewijzigd door RobIII op 11-11-2011 16:14 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Verwijderd schreef op vrijdag 11 november 2011 @ 15:16:
Hoe zit het met de locatie van ASCII? Is dit hard- of software matig? Ik dacht dat het misschien op een chip staat binnen de pc, bij een toetsaanslag wordt er in de tabel gekeken op de chip en zo weet de pc wat er moet worden gedaan?
Er is eigenlijk geen directe locatie: er is alleen een interpretatie. Dat kan hardware- of softwarematig gebeuren. De meeste hardware bevat nog code pages die je ziet bij het booten. Dat is gewoon een tabel waar bij elk nummertje een symbooltje staat. Bijvoorbeeld bij entry 65 staat er een klein plaatje van een symbooltje 'A'. Zie ook Wikipedia: Code page

Acties:
  • 0 Henk 'm!

  • joppybt
  • Registratie: December 2002
  • Laatst online: 23:56
Verwijderd schreef op vrijdag 11 november 2011 @ 15:16:
Hoe zit het met de locatie van ASCII? Is dit hard- of software matig? Ik dacht dat het misschien op een chip staat binnen de pc, bij een toetsaanslag wordt er in de tabel gekeken op de chip en zo weet de pc wat er moet worden gedaan?
Zo gek is die gedachte nog niet.
Heel belangrijk om te beseffen is dat computers intern eigenlijk alleen maar met getallen werken. Waar jij als mens denkt dat je met de letter A aan het werken bent, is de computer gewoon de hele tijd bezig met het getal 65. Als je een tekstbestand opslaat op de harde schijf dan wordt er ook een getal 65 weggeschreven, niet een letter A. In het geheugen is getal 65 opgeslagen op de chips, niet een letter.

Als jij een toets indrukt op je toetsenbord (die op de middelste rij, helemaal links) zal de hardware van je toetsenbord (of de bios?) dat vertalen naar een getal 65 wat aan de computer wordt doorgegeven.

In heel oude PC's werd dat getal 65 dan doorgegeven aan de videokaart met het verzoek het op het beeldscherm te tonen. Die videokaart had dan inderdaad een tabelletje met pixels: een getal 65 werd vertaald naar een aantal pixels (die jij als mens herkent als een letter A). Dit is een videokaart die dan in zogeheten 'Textmode' werkt.
Tegenwoordig met Windows wordt die vertaling door Windows zelf gedaan (met de fonts die op je PC staan geïnstalleerd) en vertelt Windows rechtstreeks aan de videokaart welke pixels hij moet tonen. Dat is flexibeler. Je videokaart werkt dan in zogeheten 'Grafische mode'.
Voor je computer is het dan alleen maar een stapeltje pixels, nog steeds niet echt een 'letter'.

@RobIII: de 16 en 32 bit eindigen op een 5. Dat kan niet. Heb je zelfs de 32 bit uit je hoofd getikt? _/-\o_

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
joppybt schreef op vrijdag 11 november 2011 @ 16:00:
@RobIII: de 16 en 32 bit eindigen op een 5. Dat kan niet.
Whoops :P :X De beroemde off-by-one omdat je weliswaar 65536 combinaties kunt maken met 16 bits maar maar tot 65535 kunt tellen omdat 0 ook een getal is :P
joppybt schreef op vrijdag 11 november 2011 @ 16:00:
Heb je zelfs de 32 bit uit je hoofd getikt? _/-\o_
Nee, die onthou ik altijd als vier-komma-twee-miljard :P Ik kom, zonder lang te hoofdrekenen, tot 65536 (dat is opdreunen), daarna wordt 't lastiger :P Als programmeur is 't echter verdomd handig bekend te zijn met deze getallen (en de -1 "versies" ervan :P ) omdat je ze vaak tegen komt. Zo'n getal moet je eigenlijk instantaan herkennen. Zo zal ik eerder " 8) " doen als ik 256 euro bijgestort krijg dan wanneer ik 250 euro bijgestort krijg (los van 't feit dat ik 6 euro minder heb dan :P )

[ Voor 35% gewijzigd door RobIII op 11-11-2011 16:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Wauw, bedankt voor de reacties! Maar, hoe kan dat dan, ergens moet toch staan welke code welke letter is? Of zien wij het als A omdat dat op het toetsenbord staat, maar de hardware eronder ziet alleen maar de code?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 14 november 2011 @ 09:19:
Wauw, bedankt voor de reacties! Maar, hoe kan dat dan, ergens moet toch staan welke code welke letter is? Of zien wij het als A omdat dat op het toetsenbord staat, maar de hardware eronder ziet alleen maar de code?
De "A" is gewoon niets anders dan een representatie van een code. Hoe zou je het vinden als je een toetsenbord had met enkel nullen en enen? :P Daar kunnen wij mensen weinig mee (uitzonderingen daargelaten) en de kans op fouten is veel te groot.

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ja precies. Dus wij zien "A" maar de PC ziet "065" toch? Of zien ze een 0010100 getal?

Acties:
  • 0 Henk 'm!

  • sebastius
  • Registratie: September 2000
  • Laatst online: 21:46

sebastius

Laten we lekker link gaan doen

Verwijderd schreef op maandag 14 november 2011 @ 10:01:
Ja precies. Dus wij zien "A" maar de PC ziet "065" toch? Of zien ze een 0010100 getal?
Dat is hetzelfde he? 0x65 = 01000001. Dat verwijst naar een bepaald geheugenadres waarin het teken 'A' opgeslagen ligt. Zie het als je huisnummer.

En die A wordt weer opgeslagen als:

code:
1
2
3
4
5
00100 = 0x04
01010 = 0x0A
01110 = 0x0E
01010 = 0x0A
01010 = 0x0A


of zoiets dergelijks.

[ Voor 16% gewijzigd door sebastius op 14-11-2011 10:08 ]


Acties:
  • 0 Henk 'm!

  • beascob
  • Registratie: Juli 2004
  • Laatst online: 21:55
Mag ik toevoegen dat ASCII uit het 8bit tijdperk stamt toen de 8080 chip een grote stap voorwaarts was. 8 bit was toen de standaard, en vandaar de 127 mogelijkheden.

gewaarwordingshorizon


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dus, het is wel ergens opgeslagen Sebastius? Ik dacht dat er eerder op de pagina werd gezegd dat het juist een representatie was.

Acties:
  • 0 Henk 'm!

  • --MeAngry--
  • Registratie: September 2002
  • Laatst online: 02-10 14:26

--MeAngry--

aka Qonstrukt

Natuurlijk is het ergens opgeslagen, waarschijnlijk in je besturingssysteem, zodat deze weet wat jij bedoelt en wat jij te zien wilt krijgen op je scherm.
Jij typt een A op je toetsenbord, het OS merkt dit op, en die slaat het op in je RAM. Om dit op te kunnen slaan, moet het omgezet worden in 01000001, omdat alles op een computer in bits wordt verwerkt, hedendaagse consumenten CPU's kunnen enkel met binaire getallen werken.

[ Voor 13% gewijzigd door --MeAngry-- op 14-11-2011 10:45 ]

Tesla Model Y RWD (2024)


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dus, A=065=01000001? Maar dat kan toch niet, want dat zijn dus 8 bits, terwijl ASCII met 7 bits werkt?

Ik type een A in de ASCII tabel omschreven als 065, en door het besturingssysteem opgemerkt al 01000001 ? Vervolgens wordt het in het RAM gezet, waar het wordt verwerkt door de CPU?

Het wordt me eindelijk iets duidelijker!

Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:11

Creepy

Tactical Espionage Splatterer

Lees je eens in over tallenstelsels, dat scheelt een hoop ;) Ik zie overigens ook wat foutieve zaken staan. A = 65 (decimaal dus) en niet 0x65 (hexadecimaal), maar 0x41

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ahw oke, dus A=65 in decimaal, en 041 in Hexadecimaal.
Ik heb het nu als volgt omschreven:


ASCII Tabel
In de ASCII tabel staan alle ASCII codes met de bijbehorende letter. Zo is “A” bijvoorbeeld ASCII code 065 in de ASCII tabel, en de PC ziet dit als 01000001. Elke letter heeft dus zijn eigen code. De PC denkt alleen maar in deze codes, en weet dus ook niet dat code 065 “A” is. Die betekenissen geven wij eraan, en deze staan in de ASCII tabel.
128 bit
Waarom heeft ASCII maar 128 tekens? Omdat je met 7 bits 128 combinaties kunt maken.(7^7)
De 8ste bit wordt gebruikt voor de extended ASCII sets, dus dan zijn er nog eens 128 combinaties mogelijk.

Waar wordt het opgeslagen?

ASCII is een representatie, en binnen de PC is de ASCII tabel nergens opgeslagen. Op het toetsenbord zou in plaats van “A” ook “01000001” kunnen staan. Maar omdat dat lastig te snappen is staat er “A”. De computer zelf kan alleen maar met nullen en enen overweg, in dit geval dus “01000001”


Helemaal kloppen zal het zeker niet, maar het begint er op te lijken toch?

Acties:
  • 0 Henk 'm!

  • GateKeaper
  • Registratie: April 2004
  • Laatst online: 05-08 21:46

GateKeaper

#1 Procastinator

Waar wordt het opgeslagen?
Allereerst, ik heb geen verstand van hoe de computer hiermee omgaat; maar mijn boeren verstand zegt dat er toch ergens een tabel opgeslagen zou moeten zijn.

De computer moet het binaire stelsel immers ergens "mappen" om jou de letters / woorden te kunnen tonen.

Hij zal de "tabel" niet gebruiken voor zijn eigen logica, maar wel om jou een begrijpbare weergeve te kunnen presenteren.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 14 november 2011 @ 11:19:
ahw oke, dus A=65 in decimaal, en 041 in Hexadecimaal.
Nee, 0x41
Verwijderd schreef op maandag 14 november 2011 @ 10:58:
Dus, A=065=01000001? Maar dat kan toch niet, want dat zijn dus 8 bits, terwijl ASCII met 7 bits werkt?
Ja, namelijk deze 7 bits: 01000001. De 8e bit (zoals ik eerder zei; de MSB) werd gebruikt voor parity doeleinden (of inderdaad extended ASCII; welke niet (goed) gestandaardiseerd is).
Verwijderd schreef op maandag 14 november 2011 @ 10:58:
Ik type een A in de ASCII tabel omschreven als 065
Niet 065 (dat is vaak octale notatie) maar gewoon 65.
Nogmaals: Getallen en talstelsels FAQ
Verwijderd schreef op maandag 14 november 2011 @ 11:19:
ahw oke, dus A=65 in decimaal, en 041 in Hexadecimaal.
0x41 of 4116 ja.
Neeeen! 8 bit!
Verwijderd schreef op maandag 14 november 2011 @ 11:19:
Waarom heeft ASCII maar 128 tekens? Omdat je met 7 bits 128 combinaties kunt maken.(7^7)
7^7 = 823543 :X Je hebt toch wel leren machtsverheffen op school? We werken hier binair, het tweetallig stelsel. Ofwel: 2^7. Het grondtal (hier de 2) is het talstelsel, de exponent (hier de 7) is het aantal bits.

Maar waarom doe je jezelf niet eens een lol en neem je (bijv.) deze pagina's niet eens door:
Wikipedia: ASCII (tekenset)
Wikipedia: ASCII
Wikipedia: Extended ASCII
Wikipedia: Pariteit
Wikipedia: Parity bit
Wikipedia: Binair
Wikipedia: Binary numeral system
...en ga zo maar door?
GateKeaper schreef op maandag 14 november 2011 @ 11:25:
Allereerst, ik heb geen verstand van hoe de computer hiermee omgaat; maar mijn boeren verstand zegt dat er toch ergens een tabel opgeslagen zou moeten zijn.
Dat is maar net hoe je 't ziet; de computer weet dat 'ie een bult pixels moet laten zien (die, voor ons, toevallig een A vormen). Maar voor de computer is het niets anders dan offset X zoeken in font Y, daar de juiste glyph lezen en op 't scherm tonen. In text-mode is die bult pixels vaak afkomstig uit de BIOS of soms zelfs de VGA kaart als ik met niet vergis.
sebastius schreef op maandag 14 november 2011 @ 10:06:
[...]

Dat is hetzelfde he? 0x65 = 01000001. Dat verwijst naar een bepaald geheugenadres waarin het teken 'A' opgeslagen ligt.
Je bedoelt 0x41 of 65 ;) 0x65 = 101 decimaal (dus niet één-nul-één maar honderd-en-één)
beascob schreef op maandag 14 november 2011 @ 10:19:
Mag ik toevoegen dat ASCII uit het 8bit tijdperk stamt toen de 8080 chip een grote stap voorwaarts was. 8 bit was toen de standaard, en vandaar de 127 mogelijkheden.
8 bits = 256 mogelijkheden. Die "vandaar" is dus helemaal niet zo vanzelfsprekend tenzij je dus weet dat er 1 bit (nogmaals; de MSB) gereserveerd werd voor parity doeleinden waardoor je effectief dus nog maar de helft van 't aantal mogelijkheden (128) overhoudt. Dat 0000000 geen "teken" is maar een null-char (en, technically, een aantal andere combinaties ook niet omdat deze stuurcodes zijn) bleven er "127" combinaties over. De printable chars lopen van 0x20 tot 0x7e (ofwel: decimaal 32 t/m 126). Feitelijk heb je dus, binnen ASCII, 95 printable chars.

[ Voor 87% gewijzigd door RobIII op 14-11-2011 13:21 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoe vaker ik het lees, hoe logischer het klinkt:p! Maar de tabel, het is logisch dat deze ergens moet worden opgeslagen want de procedure is als volgt:

Ik druk de "A" toets in, de PC ziet dit als 1000001. Vervolgens wordt deze 1000001 weer omgezet naar de "A" door het OS en weergegeven op het scherm


Dus de tabel zal wel in het BIOS zijn opgeslagen, want als er geen OS is geladen wordt ASCII ook gebruikt:)

Ik ga die links eens doorlezen!

[ Voor 7% gewijzigd door Verwijderd op 14-11-2011 13:30 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op maandag 14 november 2011 @ 13:28:
Dus de tabel zal wel in het BIOS zijn opgeslagen, want als er geen OS is geladen wordt ASCII ook gebruikt:)
In text-mode komt de glyph uit de BIOS (of VGA kaart); onder een modern OS komt de glyph uit een font.
Verwijderd schreef op maandag 14 november 2011 @ 13:28:
Vervolgens wordt deze 1000001 weer omgezet naar de "A" door het OS
Er wordt niets om gezet. "A" is 01000001 voor het OS. Een PC ként geen A, enkel 0 en 1 (beter: stroom of geen stroom). De omzetting vindt plaats in je brein wanneer je een zooi pixels herkent als een A.
Als in:
··■■··    001100
·■··■·    010010
·■■■■· => 011110
·■··■·    010010


Voor de PC is 't niets anders dan een bult pixels die aan- danwel uit zijn. Het enige wat je in een 'tabel' zult vinden (text-mode aangenomen) is dus welke pixels (bitmap) aan/uit zijn voor welke code. Die pixels vormen een glyph.

Echter, omdat PC's graag met bytes (=8 bits) of veelvouden daarvan werken:
Bitmapdata  Binair    Decimaal  Hexadecimaal
···■■···    00011000    24          18
··■··■··    00100100    36          24
··■■■■·· => 00111100 => 60  =>      3C
··■··■··    00100100    36          24
··■··■··    00100100    36          24

··■■■···    00111000    56          38
··■··■··    00100100    36          24
··■■■··· => 00111000 => 56  =>      38
··■··■··    00100100    72          48
··■■■■··    00111100    60          3C

In dit "font" kost elke letter (glyph) dus 5 bytes aan 'pixeldata' (bitmap).

In het geheugen (BIOS/VGA) zul je ergens aantreffen:
code:
1
... 24 36 60 36 36 56 36 56 72 69 ...

Of; in hex:
code:
1
... 18 24 3C 24 24 38 24 38 48 3C ...


Of; in binary:
code:
1
... 00011000 00100100 00111100 00100100 00100100 00111000 00100100 00111000 00100100 00111100

Omdat je wéét dat elke letter 5 bytes kost kun je in 1 klap bepalen waar de "M" zich bijvoorbeeld bevindt. "M" - "A" (ofwel: 77 - 65) = 12 dus: 12 karakters verder dan de "A" ofwel 5bytes per glyph * 12 = 60 bytes verder. Nu gebruik ik in dit voorbeeld "A" als uitgangspunt, maar dat is omdat ik de 64 karakters voor de "A" niet in bovenstaand voorbeeldje heb opgenomen (hence de ...).

Gaan we nu terug naar ASCII dan weet je dus: "A" = 6510 dus je zult op plek 65 * 5 = 325 je glyph (bitmapdata) vinden. In de praktijk ligt 't nog iets ingewikkelder omdat de non-printable chars logischerwijs niet in de bitmap zullen voorkomen waardoor je dus al een boel bytes kunt besparen in je bitmap. De printable chars beginnen op 0x20 (ofwel 3210) dus de eerste 32 * 5 = 160 bytes kun je al besparen. Stel nu dat je het adres van het karakter "A" in de bitmap wil hebben dan doe je dus (65 - 32) * 5 = 165 of (65 * 5) - 160 = 165. De 165 is dus niets anders dan een "offset". Vervolgens lees je van positie 165 dus 5 bytes en je hebt je pixeldata welke de "A" voorstelt. Wil je nu een "M" (= 7710) afdrukken dan doe je dus (77 - 32) * 5 = 225 en je hebt de posititie voor de bitmapdata van M; 5 bytes lezen en klaar.
GateKeaper schreef op maandag 14 november 2011 @ 11:25:
maar mijn boeren verstand zegt dat er toch ergens een tabel opgeslagen zou moeten zijn.
De computer moet het binaire stelsel immers ergens "mappen" om jou de letters / woorden te kunnen tonen.
Verwijderd schreef op maandag 14 november 2011 @ 13:28:
Ik druk de "A" toets in, de PC ziet dit als 1000001. Vervolgens wordt deze 1000001 weer omgezet naar de "A" door het OS en weergegeven op het scherm
tldr; Ja, er is ergens een tabel ja. Maar niet een die 65 naar 0x41 naar "A" mapped (want: alle 3 zijn 'tzelfde enkel in een andere representatie) maar wel één met de bitmapdata. En bij moderne OS'en zit die "data" (let wel: geen bitmapdata (meestal) want dat schaalt niet/amper) gewoon in een font.

[ Voor 136% gewijzigd door RobIII op 14-11-2011 15:02 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ah! oke! Maar wat ik dan niet helemaal volg, ik de ASCII tabel gaat het over decimaal getal 65 als "A". De computer kan echter alleen rekenen in binair, oftewel 1000001. Waarom zit die 65 er dan tussen?

Lees nu je geéditte post, ff lezen..

[ Voor 9% gewijzigd door Verwijderd op 14-11-2011 14:13 ]


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
*zucht*
Omdat wij mensen 10 vingers hebben en op de basisschool geleerd hebben rekenen met 't decimaal stelsel. Wij mensen hebben moeite 't verschil te zien tussen 01101101 en 01110101. Ik zie eerder het verschil tussen 109 en 117, jij niet?

6510 => 4116 => 1018 => 010000012 is allemaal exact hetzelfde getal; alleen anders geschreven. Net zoals "one", "uno", "un", "yī", "ᏌᏊᎢ" en "één" allemaal verschillende schrijfwijzen zijn voor 1.

Als je programmeert werk je vaak met een hexadecimaal stelsel, soms zelfs octaal en als je aan 't bitshiften e.d. gaat zelfs binair. Dat stelsel gebruik je dan niet omdat je 't zo leuk vindt maar omdat bepaalde zaken daarin gewoon makkelijker werken. Zo heb ik nogal moeite me voor te stellen wat een shift-left(1)* van 4510 oplevert, maar zie ik een shift-left(1) van 001011012 zonder problemen voor me: 010110102 = 9010.

En voor de snuggeren onder ons: ja, ik weet dat shl een "multiply by 2" is en een shr een "divide by 2"; het ging me even om 't 'voorstellen' van de daadwerkelijke shift actie.

[ Voor 41% gewijzigd door RobIII op 14-11-2011 14:35 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
awh! Duidelijk! Ik ga nog even verder lezen, bedankt!

Acties:
  • 0 Henk 'm!

  • Zoijar
  • Registratie: September 2001
  • Niet online

Zoijar

Because he doesn't row...

Een shl van 4510 is toch gewoon 450? :)

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zoijar schreef op maandag 14 november 2011 @ 14:41:
Een shl van 4510 is toch gewoon 450? :)
:D Ja. Afhankelijk hoe je de shl definieert ;) Als ik 't aan m'n CPU'tje vraag krijg ik toch echt 90 :P Maar laten we 't nou niet nog verwarrender maken voor TS dan 't al is ;)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • PiepPiep
  • Registratie: Maart 2002
  • Laatst online: 18-01-2023
MLM schreef op donderdag 03 november 2011 @ 10:04:
3) mapte vroeger direct van keyboard->teken (daarom heb je ook "control characters" die in tekst niet voorkomen, zoals "backspace")
Dat klopt niet, zie Wikipedia: Scancode
Elke toets heeft een eigen scancode onafhankelijk van welke taal het toetsenbord is.
Dus wat bij ons de code van de q is, is in frankrijk de code van de a omdat die op dezelfde plek zitten.
Verder zitten de codes op volgorde van de toetsen, dus q w e r t y zijn oplopende codes.

ASCII is trouwens niet de enige standaard die ooit gemaakt is, een bekende is EBCDIC, zie Wikipedia: EBCDIC

486DX2-50 16MB ECC RAM 4x 500MB Drive array 1.44MB FDD MS-Dos 6.22


Acties:
  • 0 Henk 'm!

  • 0xDEADBEEF
  • Registratie: December 2003
  • Niet online
Zoijar schreef op maandag 14 november 2011 @ 14:41:
Een shl van 4510 is toch gewoon 450? :)
code:
1
2
3
4
5
6
7
8
$ printf "%d" $(( 45 << 1 ))
90

$ printf "%d" $(( 45 << 2 ))
180

$ printf "%d" $(( 45 << 3 ))
360

Etcetera :P

"Religion is an insult to human dignity. With or without it you would have good people doing good things and evil people doing evil things. But for good people to do evil things, that takes religion." - Steven Weinberg


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Zullen we enigszins ontopic proberen blijven om TS niet verder te verwarren?

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:21
MLM schreef op donderdag 03 november 2011 @ 10:04:
De 8e bit is trouwens niet foutdetecterend, die is in ASCII standaard 0.
Dit is onzin; ASCII was altijd een 7-bits code. Modems in het DOS tijdperk konden ook gewoon doodleuk zeven bits per karakter doorsturen, waarbij vaak (afhankelijk van de codering) een achtste parity bit werd meegestuurd. Zonder parity bit wordt die hele bit niet doorgestuurd (en heb je dus een hogere throughput); die bit is dan niet opeens nul.

Op systemen met 8 bits per byte blijft de bovenste bit meestal 0, maar dat is geen ASCII feature.
Omdat die ene bit "verspild" is, zijn er veel extended-ASCII tekensets (ook wel ANSI codepages), die de 128 extra waardes aan taal/regio-specifieke tekens hangen, bijvoorbeeld de veelgebruikte (hier dan) 1252 (Western Europe/Latin) die tekens als À bevat (klinkers met accenten).
Dat klopt, er zijn diverse 8-bit codepages, maar ook in de 7-bits ASCII set werd gevarieerd, zoals je aan de ISO-646 specificatie kunt zien. En als je in een Windows wel eens in een Japanse codepage hebt gewerkt zul je gezien hebben dat alle backslashes verangen zijn door Yen-symbolen, bijvoorbeeld. Dat komt doordat zelfs de basis ASCII set niet heilig was.

Acties:
  • 0 Henk 'm!

  • .oisyn
  • Registratie: September 2000
  • Laatst online: 01-10 23:36

.oisyn

Moderator Devschuur®

Demotivational Speaker

joppybt schreef op vrijdag 11 november 2011 @ 16:00:
Als jij een toets indrukt op je toetsenbord (die op de middelste rij, helemaal links) zal de hardware van je toetsenbord (of de bios?) dat vertalen naar een getal 65 wat aan de computer wordt doorgegeven.
BIOS of OS - het BIOS heeft een standaard keyboard interrupt handler, maar het OS vervangt deze over het algemeen. Een toetsenbord stuurt louter scancodes door, die staan los de daadwerkelijke symbolen op de toetsen. Op een US toetsenbord heeft de A-toets een scancode van 30. Op een Frans toetsenbord zit op de plek van de A een Q, en heeft de Q de scancode 30, terwijl A dan 16 is. Voor de invoer is dus nóg een tabelletje nodig, eentje die scancodes (of combinaties daarvan) vertaalt naar de juiste waarde in de relevante codepage.

.edit: oh ik lees net dat zoiets al gezegd was.

[ Voor 11% gewijzigd door .oisyn op 14-11-2011 17:28 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Bedankt jongens, ik heb hem door. Heb alles samengevat op 1 a4. (helemaal uit het hoofd getyped, heel yeah. :P )

Als dit klopt dan weet ik wat ASCII is, de basis dan.


Wat betekend ASCII


American Standard Code for Information Interchange.


Wat is ASCII

ASCII is wereldwijd geaccepteerde standaard waarin de betekenis van (lees)tekens is vastgelegd.

ASCII bestaat uit 8 bits. Alle waarden uit de ASCII tabel bestaan uit 7 bits. De 8ste kan worden gebruikt voor extended ASCII sets. Zo kwam IBM met een set van horizontale en verticale streepjes, vierkantjes etc.
Toen er meer PCs buiten Amerika werken verkocht kwamen er steeds meer van dit soort sets, want elk land/regio had weer andere tekens nodig die niet in de standaard ASCII set zaten. Zo kon bijvoorbeeld een Russische PC niet zomaar naar Israël worden verstuurd, omdat de tekens 128-255 een andere betekenis hadden.

ASCII Tabel

In de ASCII tabel staan alle ASCII codes met de bijbehorende letter. Zo is “A” bijvoorbeeld ASCII code 65 in de ASCII tabel, en de PC ziet dit als 01000001. Elke letter heeft dus zijn eigen code. De PC denkt alleen maar in deze codes, en weet dus ook niet dat code 65 “A” is. Die betekenissen geven wij eraan, en deze staan in de ASCII tabel.

128 bit

Waarom heeft ASCII maar 128 tekens? Omdat je met 7 bits 128 combinaties kunt maken.(2^7)
De 8ste bit wordt of gebruikt voor de extended ASCII sets, dus dan zijn er nog eens 128 combinaties mogelijk, of als controlebit.

Waar wordt het opgeslagen?

De ASCII tabel is opgeslagen binnen het OS. Als er nog geen OS is geladen staat deze tabel vaak in het BIOS.

Hoe werkt het?

Als er een letter op het toetsenbord wordt ingedrukt, bijvoorbeeld de “A”, wordt de binaire code “01000001” naar de PC gestuurd. Vervolgens wordt er in de ASCII tabel gekeken welke pixels bij binaire code “01000001” horen. Deze pixels worden dan weergegeven op het scherm, waar wij ze herkennen als een A.

Waarom is ASCII zo groot?

ASCII is een wereldwijd geaccepteerde standaard. Dit is het geworden mede omdat het maar 1 byte per teken vereist, wat vooral vroeger erg belangrijk was. Ook was er nog niet echt een alternatief voor ASCII.

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NEEEEEN!
Verwijderd schreef op dinsdag 15 november 2011 @ 11:00:
Als er een letter op het toetsenbord wordt ingedrukt, bijvoorbeeld de “A”, wordt de binaire code “01000001” naar de PC gestuurd.
Zie het verhaal over scancodes; maar dat maakt je verslag onnodig complex denk ik zo. De praktijk is dus niet wat je hier beschrijft maar goed; het idee is in ieder geval een beetje in de richting.

[ Voor 72% gewijzigd door RobIII op 15-11-2011 11:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Huh, die klopt toch? 7^2=128... xD

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 15 november 2011 @ 11:09:
Huh, die klopt toch? 7^2=128... xD
Allereerst: je bedoelt 2^7; nogmaals: je leert potverdorie toch wel machtsverheffen op school?
7^2 = 49; 2^7 = 128

Het getal 128 heeft hier niets te maken met 128 bit. Je hebt 't hier gewoon over een byte (waarvan er maar 7 bits gebruikt worden van de 8). Met een byte kun je, als je alle 8 bits gebruikt, 256 combinaties maken. Als je 7 bits gebruikt halveer je het aantal combinaties dus 128.

128 bit = 340.282.366.920.938.463.463.374.607.431.768.211.456 combinaties.

[ Voor 11% gewijzigd door RobIII op 15-11-2011 11:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dus, anders samengevat:

In 1 byte zitten 8 bits. Dit is goed voor 256 combinatie's. Omdat ASCII maar 7 bits gebruikt, zijn er 128 combinatie's mogelijk.
De overige 128 bits zijn voor de controlebits of de extended ASCII sets!

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 15 november 2011 @ 11:15:
De overige 128 bits zijn voor de controlebits of de extended ASCII sets!
NEEEEN!

Welke overige 128 bits? Je hebt 8 appels en eet er 7 op (je hebt 8 bits en gebruikt er 7 van). Hoeveel appels heb je dan nog over? 1 of 128 :? Er is dus maar één controlebit (of; wanneer je extended ASCII gebruikt, dan wordt dat bit gebruikt om aan te geven dat je de extended versie wil en heb je dus 0 controlebits).

[ Voor 21% gewijzigd door RobIII op 15-11-2011 11:18 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Rawr! 1tje 8)7

Dus, die ene overgebleven bit wordt gebruikt als controlebit of extended ASCII set.

Maar elke combinatie houd er 1 over toch?

Acties:
  • 0 Henk 'm!

  • Brad Pitt
  • Registratie: Oktober 2005
  • Laatst online: 02-10 07:33
<offtopic> Respect voor het engelengeduld hier... Chapeau, echt waar!

Nickname does not reflect reality


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op dinsdag 15 november 2011 @ 11:20:
Maar elke combinatie houd er 1 over toch?
Waar haal je dat nou weer vandaan?

Ik zou als ik jou was toch écht nog eens onze Getallen en talstelsels FAQ doornemen en misschien eens oefenen met de materie. En kijk anders eens naar iets als [google=binary tutorial] >>
http://www.math.grin.edu/...F/Readings/student-binary of [google=binary explained simply] of (niet zelf gekeken) zoiets oid.

[ Voor 10% gewijzigd door RobIII op 15-11-2011 11:27 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ga het doorlezen, maar als ik logisch nadenk denk ik zo.

A=01000001
De dikgedrukte 0 is de herstelbit om dat maar even aan te houden.

B= 01000010
Hier is toch ook de dikgedrukte 0 de herstelbit?

ik dacht namelijk dat elke letter (elke binaire code) een eigen herstelbit had..

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Wikipedia: Parity bit; niet alsof die niet al een paar keer eerder genoemd was in dit topic...
Wikipedia: Pariteitsbit

En daar gaan we het bij laten. We hebben lang genoeg handjes gehouden (sterker: veeeeel langer dan we anders doen).

[ Voor 74% gewijzigd door RobIII op 15-11-2011 13:49 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.