Architektura systemów komputerowych (jesień 2013)

Slides:



Advertisements
Podobne prezentacje
Tryby adresowania Prawie każda operacja wykonywana przez mikroprocesor wykonywana jest na pewnych argumentach (lub argumencie). Sposoby wskazywania argumentów.
Advertisements

Użytkowanie Sieci Marcin KORZEB WSTI - Użytkowanie Sieci.
Zmienne i Typy.
Mikroprocesory i procesory sygnałowe
Opisy funkcji Adres strony WWW : html /html_node/libc_528.html.
Czy procesor musi się grzać? Np. dodawanie 2 liczb 1-bitowych. Możliwych stanów początkowych: cztery Możliwych stanów końcowych: dwa to można opisać jako.
Architektura Systemów Komputerowych
Wykład 7: Zmiennoprzecinkowe mikroprocesory sygnałowe firmy Analog Devices: zastosowania i rodziny architektura podstawowe operacje ALU.
Budowa komputera Wstęp do informatyki Wykład 15
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Od algebry Boole’a do komputera
Podstawy informatyki Wirtotechnologia – Funkcje Grupa: 1A
Magistrala & mostki PN/PD
Komputer, procesor, rozkaz.
Podstawy programowania PP – LAB6 Wojciech Pieprzyca.
Procesory RISC.
Zapis informacji Dr Anna Kwiatkowska.
nowe operatory & . (kropka) * operator rzutowy -> , (przecinek)
ALGORYTMY Martyna K. Luiza K..
O relacjach i algorytmach
opracowanie: Agata Idczak
UKŁADY LICZENIA SYSTEMY LICZBOWE
ARKUSZ KALKULACYJNY JUŻ PROŚCIEJ SIĘ NIE DA Wersja OFFICE 2010
Podstawy informatyki (4)
Informatyka I Wykład 5 OPERATORY Priorytety i kolejność obliczeń
Architektura komputerów
Architektura komputerów
Pliki tekstowe. Operacje na plikach. mgr inż. Agata Pacek.
Jerzy F. Kotowski1 Informatyka I Wykład 11 STRUKTURY I UNIE.
Autor: Krystyna Bręk ZSZ im. Gen. I.Prądzyńskiego w Augustowie
Pliki tekstowe – A. Jędryczkowski © 2007 Turbo Pascal umożliwia wykorzystanie w programach plików tekstowych. Pliki takie zawierają informację niezakodowaną
SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE
2010 © Uniwersytet Rzeszowski | 1 Temat: Autor: Jan Kowalski Ocena zagrożeń ludności cywilnej we współczesnych konfliktach zbrojnych.
Mikroprocesory.
Jednostki w informatyce i system binarny (dwójkowy)
od systemu dziesiętnego do szesnastkowego
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Technologie informacyjne EXCEL I
Informatyka I Wykład 4 Stałe Stałe liczbowe Stałe znakowe Stałe tekstowe Jerzy Kotowski Politechnika Wroclawska var = 5L - 0xA; -5.
Nazwa szkoły: Zespół Szkół w Lipinkach Łużyckich ID grup: 98/25 MF G1 Kompetencja: matematyczno-fizyczna Temat projektowy: Historia liczby Semestr/rok.
Przerwanie ang. interrupt.
Pamięć komputerowa S t r u k t u r a p a m i ę c i.
Systemy Liczenia - I Przez system liczbowy rozumiemy sposób zapisywania i nazywania liczb. Rozróżniamy: pozycyjne systemy liczbowe i addytywne systemy.
Architektura systemów komputerowych
Podstawy informatyki 2013/2014
RZUTOWANIE PROSTOKĄTNE.
Matematyka i system dwójkowy
Wykład 7 Synchronizacja procesów i wątków
Systemy operacyjne (wiosna 2014)
Adresowanie komórek w Excelu
Systemy operacyjne i sieci komputerowe
Algorytmy i Struktury Danych
Programowanie Niskopoziomowe
WYKŁAD 3 Temat: Arytmetyka binarna 1. Arytmetyka binarna 1.1. Nadmiar
Treści multimedialne - kodowanie, przetwarzanie, prezentacja Odtwarzanie treści multimedialnych Andrzej Majkowski informatyka +
1 Prowadzący: Dr inż. Sławomir Samolej D102 C, tel: , WWW: ssamolej.prz-rzeszow.pl INFORMATYKA.
Administracja systemami operacyjnymi Wiosna 2015 Wykład 1 Organizacja zajęć dr inż. Wojciech Bieniecki Instytut Nauk Ekonomicznych i Informatyki
Budowa komputera Wstęp do informatyki Wykład 6 IBM PC XT (1983)
Iga Lewandowska I EMII MU
Dane – informacje - wiadomości Kodowanie danych i problem nadmiarowości.
1 Opisy funkcji Adres strony WWW : html (należy odszukać hyperlink Function Index) (
 Formuła to wyrażenie algebraiczne (wzór) określające jakie operacje ma wykonać program na danych. Może ona zawierać liczby, łańcuchy znaków, funkcje,
Wybierz quiz Układ pokarmowy Układ krwionośny Mikołaj Miękus.
Liczbami naturalnymi nazywamy liczby 0,1,2,3,..., 127,... Liczby naturalne poznaliśmy już wcześniej; służą one do liczenia przedmiotów. Zbiór liczb.
ZNAKI PIONOWE NAKAZU Nakaz jazdy w prawo przed znakiem
HISTORIA CYFR RZYMSKICH
Podstawy Informatyki.
Wskaźniki Elżbieta Labocha.
Zygmunt Kubiak Instytut Informatyki Politechnika Poznańska
Format rozkazu Tryby adresowania.
Zapis prezentacji:

Architektura systemów komputerowych (jesień 2013) Wykład 4 Reprezentacja danych część 4 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki http://wbieniec.kis.p.lodz.pl/pwsz

Kolejność bajtów w słowach W sytuacjach, kiedy liczby, znaki lub inne dane zapisywane są przy użyciu wielu bajtów, nie istnieje jeden unikatowy sposób uporządkowania tych bajtów w pamięci. Musi być użyta jedna z wielu konwencji ustalająca kolejność bajtów (byte order lub endianness). Analogia do zapisu pozycyjnego liczb lub kierunku pisma w różnych językach – ze strony lewej na prawą albo z prawej na lewo. Ciekawostka: Użyte poniżej nazwy big endian i little endian pochodzą z książki Jonathana Swifta Podróże Guliwera i odnoszą się do mieszkańców Liliputu, których spór o to, czy ugotowane jajko należy tłuc od grubego (tępego), czy od cienkiego (ostrego) końca, doprowadził do podziału na dwa stronnictwa toczące ze sobą niekończące się, choć bezsensowne dysputy i wojny.

Kolejność bajtów w słowach Little endian (spotykane także cienkokońcowość) to forma zapisu danych, w której mniej znaczący bajt (zwany też dolnym bajtem, low-order byte, LSB) umieszczony jest jako pierwszy. Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 4A 3B 2C 1D pod adresem 100, umieszcza dane zajmując adresy od 100 do 103 w następującej kolejności: 100 101 102 103 ... 1D 2C 3B 4A Procesory, które używają formy little endian, to między innymi wszystkie z rodziny x86, DEC VAX

Kolejność bajtów w słowach Big endian (spotykane także grubokońcowość) to forma zapisu danych, w której najbardziej znaczący bajt (zwany też grubym bajtem, z ang. high-order byte) umieszczony jest jako pierwszy. Procesor zapisujący 32-bitowe wartości w pamięci, przykładowo 4A 3B 2C 1D pod adresem 100, umieszcza dane, zajmując adresy od 100 do 103 w następującej kolejności: 100 101 102 103 ... 4A 3B 2C 1D Procesory, które używają formy big endian, to między innymi SPARC, Motorola 68000, PowerPC 970, IBM System/360, Siemens SIMATIC S7. Istnieją także procesory, w których można przełączyć tryb kolejności bajtów, należą do nich na przykład PowerPC (do serii PowerPC G4), SPARC, ARM, MIPS

Kolejność bajtów w słowach - odwracanie X = aaaaaaaa bbbbbbbb cccccccc dddddddd m1= 11111111 00000000 00000000 00000000 m2= 00000000 11111111 00000000 00000000 m3= 00000000 00000000 11111111 00000000 m4= 00000000 00000000 00000000 11111111 W1 = (X & m1)>>24 = 00000000 00000000 00000000 aaaaaaaa W2 = (X & m2)>>8 = 00000000 00000000 bbbbbbbb 00000000 W3 = (X & m3)<<8 = 00000000 cccccccc 00000000 00000000 W4 = (X & m3)<<24 = dddddddd 00000000 00000000 00000000 int reverseEndian(int x) { return (x&0xff000000)>>24 | (x&0x00ff0000)>> 8 | (x&0x0000ff00)<< 8 | (x&0x000000ff)<<24; }

Kod ASCII ASCII (American Standard Code for Information Interchange) Opracowany dla urządzeń dalekopisowych, później przyjęty dla komputerów 7-bitowy kod przyporządkowujący liczby z zakresu 0-127 literom (alfabetu angielskiego), cyfrom, znakom przestankowym i innym symbolom oraz poleceniom sterującym litery, cyfry oraz inne znaki drukowane tworzą zbiór znaków ASCII - jest to 95 znaków o kodach 32-126 pozostałe 33 kody (0-31 i 127) to tzw. kody sterujące służące do sterowania urządzeniem odbierającym komunikat, np. drukarką czy terminalem

Kody ASCII

Tablica bitowa kodów ASCII

Kod ASCII – znaki sterujące 33 kody – 0-31 i 127 znaki niedrukowalne: sygnały dźwiękowe, białe znaki (tabulacja, spacja, znak końca wiersza, powrót na początek wiersza) Kod dziesiętny Znak Opisy znaków sterujących NUL Zero :) 1 SQH (Start Of Heading) - początek nagłówka = SOM 2 STX (Start Of Text) - początek tekstu = EOA 3 ETX (End Of Text) - koniec tekstu = EOM 4 EOT (End Of Transmission) - koniec transmisji 5 ENQ (Enquiry) - wywołanie stacji 6 ACK (Acknowledge) - potwierdzenie 7 BEL (Bell) - dzwonek 8 BS (Back Space) - powrót o 1 pozycję 9 HT (Horizontal Tab) - tabulacja pozioma 10 LF (Line Feed) - przesuw o 1 wiersz 11 VT (Vertical Tab) - tabulacja pionowa 12 FF (Form Feed) - przesuw o 1 stronę 13 CR (Carriage Return) - powrót karetki 14 SO (Switch Output) - wyjście (przełączenie trwałe) 15 SI (Switch Input) wejście(przełączenie powrotne) 16 DLE (Data Link Escape) - pominięcie znaków sterujących 17 DC1 (Device Control 1) - sterowanie urządzenia 1 / start transmisji = XON Kod dziesiętny Znak Opisy znaków sterujących 18 DC2 (Device Control 2) - sterowanie urządzenia 2 19 DC3 (Device Control 3) - sterowanie urządzenia 3 / stop transmisji = XOFF 20 DC4 (Device Control 4) - sterowanie urządzenia 4 21 NAK (Negative Acknowledge) - potwierdzenie negatywne (gdy wystąpił błąd) 22 SYN (Sync) - synchronizacja 23 ETB (End Transmission Blok) - koniec bloku 24 CAN (Cancel) - anulowanie 25 EM (End of Medium) - koniec nośnika (zapisu) 26 SUB (Substitute) - zastąpienie 27 ESC (Escape) - przełączenie 28 FS (File Separator) - poprzedza dane alfanumeryczne 29 GS (Group Separator) - poprzedza dane binarne 30 RS (Record Separator) - separator rekordów 31 US (Unit Separator) - separator pozycji 32 SP (Space) - spacja (odstęp) 127 DEL Znak usunięcia znaku

Kod ASCII – zakończenie wiersza W systemie DOS/ Windows każdy wiersz pliku zakończony jest parą znaków: CR, kod ASCII - 13(10) = 0D(16) - powrót na początek wiersza LF, kod ASCII - 10(10) = 0A(16) - przesunięcie o wiersz w systemie Linux znakiem końca wiersza jest tylko: LF, kod ASCII - 10(10) = 0A(16) podczas przesyłania pliku tekstowego z systemu Linux do systemu DOS/Windows pojedynczy znak LF zamieniany jest automatycznie na parę znaków CR i LF błędne przesłanie pliku tekstowego (w trybie binarnym) powoduje nieprawidłowe jego wyświetlanie

Kod ASCII – znak końca wiersza DOS / Windows (32B): UNIX / Linux (30B): Mac OS (30B):

Podstawowe funkcje znakowe isdigit – czy znak jest cyfrą? isalnum – czy znak jest literą? isspace – czy znak jest odstępem? ispunct – czy znak jest znakiem przestankowym? isprint – czy znak jest znakiem drukowanym isgraph – czy znak jest symbolem graficznym? toupper – zamiana małych liter na duże tolower – zamiana dużych liter na małe

isdigit 0110000 0 0110001 1 0110010 2 0110011 3 0110100 4 0110101 5 0110110 6 0110111 7 0111000 8 0111001 9 int isdigit(char c) { return (c>=48 && c<=58); }

isalnum int isupper(char c) { return (c>='A' && c<='Z'); } int islower(char c) { return (c>='a' && c<='z') } int isalpha(char c) { return ((c>='A' && c<='Z') || (c>='a' && c<='z')); }

toupper, tolower char toupper(char c) { if ( (c >= 'a') && (c <= 'z') ) c = c - ('a' - 'A'); return c; } char tolower(char c) { if ( (c >= 'A') && (c <= 'Z') ) c = c + ('a' - 'A'); return c; }

Rozszerzony od ASCII Kod ASCII w wersji podstawowej jest 7-bitowy Większość komputerów pracuje na 8-bitowych bajtach Dodatkowy bit jest wykorzystywany do powiększenia zbioru kodowanych znaków Powstało wiele ro żnych rozszerzeń ASCII wykorzystują cych o smy bit, nazywanych stronami kodowymi (np. norma ISO 8859, rozszerzenia firm IBM lub Microsoft)

Kod ASCII – strony kodowe Strony kodowe – wersje kodu ASCII różniące się interpretacją symboli o numerach od 128 do 255. RÓżne strony kodowe mogą przyjąć odmienne znaki dla tego samego kodu Różne strony kodowe mogą różnić się wyborem znaków Duża liczba dostępnych stron kodowych wynika z faktu, że na 8 bitach można zakodować tylko 256 rożnych znaków, co jest niewystarczające do zmieszczenia w jednym zestawie znaków wszystkich alfabetów Przykłady stron kodowych uwzględniające polskie litery: ISO 8859-2 (Latin-2), ISO 8859-16 (Latin-10)

ISO 8859 Zestaw standardów służących do kodowania znaków za pomocą 8 bitów Standardy te zostały utworzone przez European Computer Manufactures’ Association (ECMA) w połowie lat osiemdziesiątych, a następnie uznane przez ISO Wszystkie zestawy ISO 8859 mają znaki 0-127 takie same jak ASCII Pozycjom 128-159 przypisane są dodatkowe kody sterujące, tzw. C1 (faktycznie są nieużywane).

Standardy ISO 8859 ISO 8859-1 (Latin-1) - alfabet łaciński dla Europy zachodniej ISO 8859-2 (Latin-2) – alfabet łaciński dla Europy środkowej i wschodniej, również odpowiednia Polska Norma ISO 8859-3 (Latin-3) – alfabet łaciński dla Europy południowej ISO 8859-4 (Latin-4) – alfabet łaciński dla Europy północnej ISO 8859-5 (Cyrlic) – alfabet dla cyrylicy ISO 8859-6 (Arabic) - dla alfabetu arabskiego ISO 8859-7 (Greek) - dla alfabetu greckiego ISO 8859-8 (Hebrew) - dla alfabetu hebrajskiego ISO 8859-9 (Latin-5) ISO 8859-10 (Latin-6) ISO 8859-11 (Thai) - dla alfabetu tajskiego ISO 8859-13 (Latin-7) ISO 8859-14 (Latin-8) ISO 8859-15 (Latin-9) - z ISO 8859-1 usunięto kilka rzadko używanych znaków i wprowadzono znak Euro oraz litery Š, š , Ž, ž, OE , oe oraz Ÿ ISO 8859-16 (Latin-10) – alfabet łaciński dla Europy środkowej - zmodyfikowany ISO 8859-2 ze znakiem Euro i dodatkowymi literami dla kilku języków.

Kod ISO 8859-1 kodowanie używane w Amerykach, Europie Zachodniej, Oceanii i większej części Afryki dostępne języki: albański, angielski, baskijski, duński, estoński, fiński, francuski, hiszpański, irlandzki, islandzki, kataloński, łaciński, niderlandzki, niemiecki, norweski, portugalski, retoromański, szkocki, szwedzki, włoski składa się ze 191 znaków łacińskiego pisma po rozszerzeniu o dodatkowe przypisania znaków jest podstawą dla dwóch mapowań znaków ISO-8859-1 i Windows-1252

Kod ISO 8859-2 dostępne języki: bośniacki, chorwacki, czeski, węgierski, polski, rumuński, serbski, słowacki, słoweński, górno- i dolnołużycki możliwość przedstawienia znaków w języku niemieckim i angielskim składa się ze 191 znaków łacińskiego pisma zapisywanych na 8-bitach kody z przedziałów 00(16)-1F(16) oraz 7F(16)-9F(16) nie są używane w ISO-8859-2 kodowanie to jest zgodne z Polską Normą

ISO 8859-1 i 8859-2 – porównanie

Windows 1250 Standard kodowania używana przez system Microsoft Windows do reprezentacji tekstów w językach środkowoeuropejskich używających alfabetu łacińskiego, takich jak albański, chorwacki, czeski, polski, rumuński, słowacki, węgierski jest podobny do ISO 8859-2 – posiada wszystkie jego drukowalne znaki (a także kilka dodatkowych), lecz kilka z nich zajmuje inne miejsca

Windows 1250 i ISO 8859-2 NZ - znak niezdefiniowany w kodowaniu Hex CP 1250 ISO 8859-2 0xC0 Ŕ 0xE0 ŕ 0xC1 Á 0xE1 á 0xC2 Â 0xE2 â 0xC3 Ă 0xE3 ă 0xC4 Ä 0xE4 ä 0xC5 Ĺ 0xE5 ĺ 0xC6 Ć 0xE6 ć 0xC7 Ç 0xE7 ç 0xC8 Č 0xE8 č 0xC9 É 0xE9 é 0xCA Ę 0xEA ę 0xCB Ë 0xEB ë 0xCC Ě 0xEC ě 0xCD Í 0xED í 0xCE Î 0xEE î 0xCF Ď 0xEF ď 0xD0 Đ 0xF0 đ 0xD1 Ń 0xF1 ń 0xD2 Ň 0xF2 ň 0xD3 Ó 0xF3 ó 0xD4 Ô 0xF4 ô 0xD5 Ő 0xF5 ő 0xD6 Ö 0xF6 ö 0xD7 × 0xF7 ÷ 0xD8 Ř 0xF8 ř 0xD9 Ů 0xF9 ů 0xDA Ú 0xFA ú 0xDB Ű 0xFB ű 0xDC Ü 0xFC ü 0xDD Ý 0xFD ý 0xDE Ţ 0xFE ţ 0xDF ß 0xFF ˙ Hex CP-1250 ISO 88592 0x80 € ZK 0x81 NZ 0x82 ‚ 0x83 0x84 „ 0x85 … 0x86 † 0x87 ‡ 0x88 0x89 ‰ 0x8A Š 0x8B ‹ 0x8C Ś 0x8D Ť 0x8E Ž 0x8F Ź Hex CP-1250 ISO 88592 0x90 NZ ZK 0x91 ‘ 0x92 ’ 0x93 “ 0x94 ” 0x95 • 0x96 – 0x97 0x98 0x99 ™ 0x9A š 0x9B › 0x9C ś 0x9D ť 0x9E ž 0x9F ź Hex CP-1250 ISO 8859-2 0xA0   0xA1 ˇ Ą 0xA2 ˘ 0xA3 Ł 0xA4 ¤ 0xA5 Ľ 0xA6 ¦ Ś 0xA7 § 0xA8 ¨ 0xA9 © Š 0xAA Ş 0xAB «  Ť 0xAC ¬ Ź 0xAD 0xAE ® Ž 0xAF Ż Hex CP-1250 ISO 8859-2 0xB0 ° 0xB1 ± ą 0xB2 ˛ 0xB3 ł 0xB4 ´ 0xB5 µ ľ 0xB6 ¶ ś 0xB7 · ˇ 0xB8 ¸ 0xB9 š 0xBA ş 0xBB  » ť 0xBC Ľ ź 0xBD ˝ 0xBE ž 0xBF ż NZ - znak niezdefiniowany w kodowaniu ZK znak kontrolny, Znak znak wspólny dla obydwu kodowań.

Kodowanie polskich znaków Tekst przykładowy: Ą Ć Ę Ł Ń Ó Ś Ź Ż ą ć ę ł ń ó ś ź ż Tekst zapisany w standardzie ISO – 8859-2 Tekst zapisany w standardzie CP-1250 ISO-8859-2 wyświetlony w edytorze obsługującym CP-1250 ˇ Ć Ę Ł Ń Ó ¦ ¬ Ż ± ć ę ł ń ó ¶ Ľ ż CP-1250 wyświetlony w edytorze obsługującym ISO-8859-2 Ľ Ć Ę Ł Ń Ó Œ  Ż š ć ę ł ń ó œ Ÿ ż

Standardy kodowania polskich znaków W Polsce stosowanych było ok. 20 standardów kodowania polskich liter Próby wprowadzania standardu Mazovia - promowany przez społeczność informatyczną w Polsce (nie był pełną stroną kodową , ale określał sposób kodowania polskich liter) IBM-Latin-2 (CP-852) - stosowany w DOS, OS/2 i części systemu Windows CP-1250 (Windows-1250) – stosowany w MS Windows PL ISO-Latin-2 (ISO 8859-2) - stosowany w Internecie Standard ISO 8859-2 jest zgodny z Polską Normą PN-93 T-42118

Unicode Komputerowy zestaw znaków mający w zamierzeniu obejmować wszystkie pisma i inne znaki (symbole muzyczne, techniczne, wymowy) używane na świecie Unicode przypisuje unikalny numer każdemu znakowi, niezależnie od używanej platformy, programu czy języka Definiowany jest przez dwa standardy, w których znaki są identyczne: Unicode i ISO/IEC 10646 Standard Unicode zaimplementowany został w wielu nowych technologiach, np. XML, Java, Microsoft .NET Framework, nowe systemy operacyjne

Unicode Rozwijany jest przez konsorcjum, w skład którego wchodzą firmy komputerowe, producenci oprogramowania oraz grupy użytkowników - http://www.unicode.org Strona polska: http://www.unikod.pl Pierwsza wersja: Unicode 1.0 (październik 1991) Ostatnia wersja: Unicode 6.1.0 (styczeń 2012)

Podstawowe właściwości Unicode Jednoznaczność – każdemu znakowi zakodowanemu za pomocą Unicode odpowiada zawsze ta sama wartość liczbowa i odwrotnie. Uniwersalność – dostępne znaki obejmują wszystkie powszechnie używane języki i symbole. 16-bitowa reprezentacja – każdy znak reprezentowany jest w postaci 16-bitowej liczby, czyli można zakodować 216=65536 różnych znaków Efektywność – ułatwienie manipulowania tekstami, gdyż identyfikacja znaku nie zależy od sekwencji sterujących czy znaków następujących bądź poprzedzających

UTF-8 – kodowanie znaków Unicode Unicode Transformation Format. Jest to przykład kodu bajtowego Mapowanie znaków Unikodu na ciągi bajtów: 0x00 do 0x7F - 0xxxxxxx 0x80 do 0x7FF - 110xxxxx 10xxxxxx 0x800 do 0xFFFF - 1110xxxx 10xxxxxx 10xxxxxx 0x10000 do 0x1FFFFF - 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx 0x200000 do 0x3FFFFFF - 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x4000000 do 0x7FFFFFFF - 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx Dla pierwszych znaków z przedziału ASCII od 0 do 127 (czyli dla np j.ang) znak jest mapowany jako jeden bajt. Dla znaków powyżej (np. polskie znaki) jest mapowany jako dwa bajty (lub więcej).

UTF-8 - kodowanie oznacza to, że ten sam znak można zapisać na kilka sposobów. Przykładowo znak ASCII / (ukośnik) można zapisać jako: 00101111 11000000 10101111 11100000 10000000 10101111 Standard UTF-8 przewiduje, że każdy program MUSI odrzucać wszystkie znaki zapisane sekwencjami dłuższymi niż minimalna.

UTF-8 Zalety Każdy tekst w ASCII jest tekstem w UTF-8. Żaden znak spoza ASCII nie zawiera bajtu z ASCII. Zachowuje porządek sortowania UCS-4. Typowy tekst ISO-Latin-X rozrasta się w bardzo niewielkim stopniu po przekonwertowaniu do UTF-8. Nie zawiera bajtów 0xFF i 0xFE, więc łatwo można go odróżnić od tekstu UTF-16. Znaki o kodzie różnym od 0 nie zawierają bajtu 0, co pozwala stosować UTF-8 w ciągach zakończonych zerem. O każdym bajcie wiadomo, czy jest początkiem znaku, czy też leży w jego środku (co nie jest prawdą np. w kodowaniu EUC). Nie ma problemów z little endian i big endian. Jest domyślnym kodowaniem w XML (również w jego aplikacjach: XHTML, SVG, XSL, CML, MathML)

UTF-8 – Wady Znaki CJK (chiński-japoński-koreański) zajmują po 3 bajty zamiast 2 w kodowaniach narodowych. Znaki alfabetów niełacińskich zajmują po 2 bajty zamiast jednego w kodowaniach narodowych. UTF-8 nie używa przesunięć zasięgów, co stanowi dodatkowe utrudnienie dla implementacji UTF-8 Problemu tego można byłoby uniknąć, przy okazji skracając nieznacznie długość danych, jeśli wykorzystano by zasadę przesunięć typu: sekwencje 1-bajtowe kodują 0x80 różnych znaków - od 0x00 do 0x7F sekwencje 2-bajtowe kodują 0x800 różnych znaków - od 0x80 do 0x87F sekwencje 3-bajtowe kodują 0x10000 różnych znaków - od 0x880 do 0x1087F itd.

UTF-16 Sposób ten wymaga użycia szesnastobitowych słów Dla znaków na pozycjach poniżej 65536 (przedział 0000-FFFF) używane jest jedno słowo, którego wartość odpowiada pozycji znaku w standardzie. Dla znaków z wyższych pozycji używa się dwóch słów. Pierwsze z nich należy do przedziału D800–DBFF, drugie: DC00-DFFF. Znak o kodzie szesnastkowym 10000 zostanie zamieniony na sekwencję D800 DC00 a znak o kodzie 10FFFD (górna granica unikodu) na DBFF DFFD. W standardzie Unicode pozycjom z przedziału D800–DFFF nie są przypisane żadne znaki, zatem każda sekwencja słów kodowych jest interpretowana jednoznacznie.

UTF-32 wymaga użycia trzydziestodwubitowych słów. Zestaw znaków jest też zdefiniowany w standardzie ISO 10646 jako UCS-4 Kody obejmują zakres od 0 do 0x7FFFFFFF. Kod znaku zawsze ma długość 4 bajtów i w zapisie big endian przedstawia po prostu numer znaku w tabeli Unikodu. ZALETA Stała długość kodu każdego znaku WADA Mała efektywność- zakodowane ciągi znaków są dwa do czterech razy dłuższe niż ciągi tych samych znaków zapisanych w innych kodowaniach. ZASTOSOWANIE tylko w RAM w celu ułatwienia obsługi i przetwarzania (np. obliczenie długości czy wycinanie ciągu znaków jest bardzo proste)

Kod EBCDIC (ang. Extended Binary Coded Decimal Interchange Code, czyli rozszerzony dziesiętny zakodowany dwójkowo kod wymiany) to ośmiobitowe kodowanie znaków używane głównie w systemach IBM. Pojedynczy znak zapisywany jest na 8 bitach podzielonych na dwie części. Pierwsze 4 bity, nazywane strefą, oznaczają grupę do jakiej dany znak należy, podczas gdy ostatnie 4 bity, zwane cyfrą, identyfikują konkretny znak.   1 2 3 4 5 6 7 8 9 A B C D E F 40 â ä à á ã å ç ñ [ . < ( + ! 50 & é ê ë è í î ï ì ß ] $ * ) ; ^ 60 - / Â Ä À Á Ã Å Ç Ñ ¦ , % _ > ? 70 ø É Ê Ë È Í Î Ï Ì ` : # @ ' = " 80 Ø a b c d e f g h i « » ð ý þ ± 90 ° j k l m n o p q r ª º æ ¸ Æ ¤ A0 µ ~ s t u v w x y z ¡ ¿ Ð Ý Þ ® B0 ¢ £ ¥ · © § ¶ ¼ ½ ¾ ¬ | ¯ ¨ ´ × C0 { G H I ­ ô ö ò ó õ D0 } J K L M N O P Q R ¹ û ü ù ú ÿ E0 \ ÷ S T U V W X Y Z ² Ô Ö Ò Ó Õ F0 ³ Û Ü Ù Ú

PDP-6, PDP-10/DECsystem-10, DECSYSTEM-20 Least significant bits Kod Radix-50 Kod ten jest nazywany Rad-50 lub RAD50, zaprojektowany przez Digital Equipment Corporation dla komputerów DECsystem, PDP, i VAX. Kod ten ma pozwala zapisać 40 różnych znaków (ósemkowo 50), w tym spacja, 26 liter, znak dolara, kropka, cyfry w dwóch wariantach: 3 znaki na słowie 16 bitowym. 6 znaków wraz z flagą informacyjną na słowie 36 bitowym. PDP-6, PDP-10/DECsystem-10, DECSYSTEM-20 m. s. bits Least significant bits 000 001 010 011 100 101 110 111 space 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z . $  %

Least significant bits Kod Radix-50 PDP-11, VAX m. s. bits Least significant bits 000 001 010 011 100 101 110 111 space A B C D E F G H I J K L M N O P Q R S T U V W X Y Z $ .  % 1 2 3 4 5 6 7 8 9 Łańcuchy tekstowe są kodowane na kolejnych słowach. Pierwszy znak w obrębie słowa zajmuje najstarszą pozycję. Przykład: Zakodować napis ABCDEF używając PDP-11. Wartości znaków to 1,2,3,4,5,6. Będą one zakodowane jako słowa: (1*40 + 2) * 40 + 3 = 1683 (4*40 + 5) * 40 + 6 = 6606 Każdy łańcuch jest uzupełniany spacjami na końcu do wielokrotności trzech znaków.

Kod Radix-50 Istnieje wiele odmian kodowania Rad-50. Np. w systemie operacyjnym RT-11 wartość 011101 jest określona jako niezdefiniowana natomiast programy użytkowe przypisywały jej reprezentację * Użycie Rad-50 wymusiło konwencję zapisu nazw plików w systemie PDP-11. Nazwa pliku składa się z 6 znaków nazwy właściwej i trzech znaków rozszerzenia. Cały łańcuch można było zapisać na trzech słowach (kropki rozdzielającej nie trzeba pamiętać) Rad-50 był często stosowany w tablicach symboli dla różnych języków programowania dla PDP-11.

Kod Base64 Base64 służy do kodowania ciągu bajtów za pomocą ciągu znaków Przypisuje 64 wybranym znakom wartości od 0 do 63. Wart. Znak A 11 L 22 W 33 h 44 s 55 3 1 B 12 M 23 X 34 i 45 t 56 4 2 C 13 N 24 Y 35 j 46 u 57 5 D 14 O 25 Z 36 k 47 v 58 6 E 15 P 26 a 37 l 48 w 59 7 F 16 Q 27 b 38 m 49 x 60 8 G 17 R 28 c 39 n 50 y 61 9 H 18 S 29 d 40 o 51 z 62 + I 19 T 30 e 41 p 52 63 / J 20 U 31 f 42 q 53 10 K 21 V 32 g 43 r 54 pad = Ciąg bajtów poddawany kodowaniu dzielony jest na grupy po 3 bajty. Każdą taką grupę dzieli się następnie na 4 jednostki 6-bitowe. Istnieją więc dokładnie 64 możliwe wartości każdej takiej jednostki Jeśli rozmiar wejściowego ciągu bajtów nie jest wielokrotnością liczby 3, to stosowane jest dopełnianie

Kod Base64 Rodzaj kodowania transportowego Wykorzystywane m.in. do: przesyłania załączników binarnych w poczcie elektronicznej, pamiętania ViewState w stronach WWW tworzonych przy użyciu technologii ASP.NET, kodowania haseł wysyłanych w protokole SMTP podczas uwierzytelniania metodami PLAIN i LOGIN. Przykład:  Idealy sa jak gwiazdy - nie mozna ich osiagnac, ale mozna sie nimi kierowac. SWRlYWx5IHNhIGphayBnd2lhemR5IC0gbmllIG1vem5hIGljaCBvc2lhZ25hYywgYWxlIG1vem5hIHNpZSBuaW1pIGtpZXJvd2FjLg0K