V1CP1 – week 3
description
Transcript of V1CP1 – week 3
V1CP1 – week 3Codesystemen
2
00011001001010000111010001100011
1 9 2 8 7 4 6 3
BCD
Cijfers:
Ieder cijfer wordt apart gecodeerd met vier bits (een nibble)
19287463 Voorbeeld: het getal
Gebruikt in COBOL (taal voor administratieve programma’s) Technische systemen (tellers) Speciale machine instructies op b.v. IBM machines
Binairy coded decimal
3
Telegraph Teletype
Machines die teksten versturen/ontvangen (beetje ouderwets )
Voor opslag en bewerking in computergeheugen Overdracht van data tussen verschillende systemen Opslag op achtergrondgeheugen
Codering van teksten
4
American Standard Code for Information Interchange
Hex 0 1 2 3 4 5 6 70 NULL DLE SP 0 @ P ` p1 SOH DC1 ! 1 A Q a q2 STX DC2 " 2 B R b r3 ETX DC3 # 3 C S c s4 EOT DC4 $ 4 D T d t5 ENQ NAK % 5 E U e u6 ACK SYN & 6 F V f v7 BEL ETB 7 G W g w8 BS CAN ( 8 H X h x9 HT EM ) 9 I Y i yA LF SUB * : J Z j zB VT ESC + ; K [ k {C FF FS ` L \ l |D CR GS - = M ] m }E SOH RS . > N ^ n ~F SI US / ? O _ o DEL
Le
as
t S
ign
ific
an
t N
ibb
le
Most Significant Nibble
D => 44h => 0100 0100b
44h ook 0x44
ASCII-code (7-bits)
5
NUL nullSOH start of headingSTX start of textETX end of textEOT end of transmissionENQ enquiryACK acknowledgeBEL bellBS back spaceHT horizontal tabLF line feedVT vertical tabFF form feedCR carriage returnSO shift outSI shift in
DLE data link escapeDC1 device control 1DC2 device control 2DC3 device control 3DC4 device control 4NAK negative acknowledgeSYN synchronizeETB end of transmitted blockCAN cancelEM end of mediumSUB substituteESC escapeFS file separatorGS group separatorRS record separatorUS unit separator
Control codes
6
Standaard Naam ToepassingISO8859-1 latin1 West-Europese talenISO8859-2 latin2 Centraal- en Oost-Europese talenISO8859-5 cyrillic o.a. RussischISO8859-6 arabic ArabischISO8859-7 greek GrieksISO8859-8 hebrew HebreeuwsISO8859-9 latin5 TurksISO8859-11 thai ThaiISO8859-15 latin9 latin1 met Euro symbool
ISO 8859 standaarden
0xA4 10100100 €
Uitbreidingen op ASCII tekenset
7
UTF-8
Unicode Transformation Format 8 Codering van variabele lengte in eenheden
van 8 bits Brengt 8-, 16- en 32-bits coderingen onder in
een systeem Wordt o.a. gebruikt voor e-mail, HTML, XML,
Unix OS’en
8
Hexadecimaal Binair
Het bit / de bits waarmee een codering start geeft aan hoeveel bytes er voor de codering worden gebruikt
00 tot 7F: 0xxxxxxx80 tot 7FF: 110xxxxx 10xxxxxx800 tot FFFF: 1110xxxx 10xxxxxx 10xxxxxx
Voor de codering van 00-7F zijn 7 bits nodig (gelijk aan 7-bits ASCII)
Voor de codering van 80–7FF zijn 11 bits nodig (16-bits UCS-2)
Voor de codering van 800-FFF zijn 16 bits nodig (16-bits UCS-2)
UTF-8 Codering
9
Let op: UTF-8 legt alleen vast om welk karakter
het gaat en niet hoe het karakter er uitziet !
UTF, UCS en fontbeschrijvingen
10
Andere UTF coderingen
UTF-16 codering van variabele lengte in eenheden van 16
bits bevat veel 0-en wordt o.a. gebruikt in Java, Windows, Mac OS-X
UTF-32 codering met een vaste lengte van 32 bits wordt weinig gebruikt (bevat heel veel 0-en)
11
Belangrijk om te onthouden
Alle gegevens in computersystemen moet worden gecodeerd in bitreeksen (0-en en 1-en)
Het is voor de uitwisseling van gegevens nodig om de codering te standaardiseren
Voor de codering van teksten bestaan er verschillende coderingen (ASCII, extended ASCII, Unicode, ...)
De gebruikte codering zegt niets over hoe een karakter er uitziet, dit wordt bepaald door het gekozen font (lettertype)
12
Coderingen van meetwaarden(windwijzer)
13
Binaire- en Gray-code meetschijf
14
bin oct dec hex gray0000 00 0 0 00000001 01 1 1 00010010 02 2 2 00110011 03 3 3 00100100 04 4 4 01100101 05 5 5 01110110 06 6 6 01010111 07 7 7 01001000 10 8 8 11001001 11 9 9 11011010 12 10 A 11111011 13 11 B 11101100 14 12 C 10101101 15 13 D 10111110 16 14 E 10011111 17 15 F 1000
Vertaaltabel diverse codes
15
Foutdetectie en foutcorrectie
Bij transport van data treden fouten op.
Knip de bitreeksen in stukjes Voeg aan ieder stukje een aantal bits toe om
fouten te detecteren - error detecting code
of te corrigeren - error correcting code (ECC)
16
1000110 1pariteit-bit (even)
1000110 0pariteit-bit (oneven)
Pariteit
17
Horizontale en verticale pariteit
18
Stel je hebt één bit data en je voegt een extra bit toe voor fout-detectie.
De volgende codes zijn mogelijk:00 = 001 fout10 fout11 = 1
00 en 11 zijn goede coderingen01 en 10 zijn foute coderingen
Het verschil tussen de codering van 0 en 1 is 2 bits.
Fout-detecterende code(bits verdubbelen)
19
(14,10) code; n = 14, k = 10
Hamming-code
Richard W. Hamming (Bell Labs, 1950)
20
Het minimaal aantal bits waarin de codes van een verzameling waarden verschillen.
Toevoegen van extra bits aan de codes kan de Hamming-afstand vergroten
Het slim toevoegen van extra bits maakt het mogelijk om fouten te corrigeren
1 13
1 02
0 11
0 00
1 1 0
1 0 1
0 1 1
0 0 0
Hamming-afst. = 1 Hamming-afst. = 2
Hamming-afstand
21
positie 100- - - P D D D
positie 010- P D - - D D
positie 001P - D - D - D
7-bits codewoordP P D P D D D
12 3 4 5 6 7
001010011100101110111
Pariteitsbits Hamming-code
22
even pariteit---0011
even pariteit-11--11
even pariteit0-1-0-1
7-bits codewoord0110011
1234567
De 7-bits Hamming-codevan 13 (1101)
23
1 Not OK! even pariteit - - - 0 1 1 1
OK! even pariteit - 1 1 - - 1 1
1 Not OK! even pariteit 0 - 1 - 1 - 1
7-bits codewoord0 1 1 0 1 1 1
1 2 3 4 5 6 7
Stel de ontvanger krijgt de code 1110110 binnen
- Welk bit is fout ?
De pariteitsbits op plaats 1 en 4 kloppen niet
het bit op plaats 1 + 4 = 5 klopt niet
Foutcorrectie in Hamming-code
24
Cyclic Redundancy Check (CRC)
25
CRC
26
CRC- generatie en check
27
Opdrachten
Bestudeer paragraaf 3.3 t/m 3.7 Maak opgaven 3.5 t/m 3.7
28
Links
ASCII (Wikipedia) UTF8 (Wikipedia) Hamming Code (Wikipedia) Cyclic redundancy check (Wikipedia)