Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Architektura systemów komputerowych (jesień 2013) Wykład 4 Reprezentacja danych część 4 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki

Podobne prezentacje


Prezentacja na temat: "Architektura systemów komputerowych (jesień 2013) Wykład 4 Reprezentacja danych część 4 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki"— Zapis prezentacji:

1 Architektura systemów komputerowych (jesień 2013) Wykład 4 Reprezentacja danych część 4 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki

2 Kolejność bajtów w słowach 2 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.

3 Kolejność bajtów w słowach 3 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: D2C3B4A... Procesory, które używają formy little endian, to między innymi wszystkie z rodziny x86, DEC VAX

4 Kolejność bajtów w słowach 4 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: A3B2C1D... 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

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

6 Kod ASCII 6 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 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 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

7 Kody ASCII 7

8 Tablica bitowa kodów ASCII 8

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

10 Kod ASCII – zakończenie wiersza 10 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

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

12 Podstawowe funkcje znakowe 12 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

13 isdigit int isdigit(char c) { return (c>=48 && c<=58); }

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

15 toupper, tolower 15 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; }

16 Rozszerzony od ASCII 16 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)

17 Kod ASCII – strony kodowe 17 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 (Latin-2), ISO (Latin-10)

18 ISO 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 takie same jak ASCII Pozycjom przypisane są dodatkowe kody sterujące, tzw. C1 (faktycznie są nieużywane).

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

20 Kod ISO 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 i Windows-1252

21 Kod ISO 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 kodowanie to jest zgodne z Polską Normą

22 ISO i – porównanie 22

23 Windows 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 – posiada wszystkie jego drukowalne znaki (a także kilka dodatkowych), lecz kilka z nich zajmuje inne miejsca

24 Windows 1250 i ISO Hex CP ISO x80ZK 0x81NZZK 0x82ZK 0x83NZZK 0x84ZK 0x85…ZK 0x86ZK 0x87ZK 0x88NZZK 0x89ZK 0x8AŠZK 0x8BZK 0x8CŚZK 0x8DŤZK 0x8EŽZK 0x8FŹZK Hex CP ISO xA0 0xA1ˇĄ 0xA2˘ 0xA3Ł 0xA4¤ 0xA5ĄĽ 0xA6¦Ś 0xA7§ 0xA8¨ 0xA9©Š 0xAAŞ 0xAB« Ť 0xAC¬Ź 0xAD 0xAE®Ž 0xAFŻ Hex CP 1250 ISO Hex CP 1250 ISO xC0Ŕ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 ISO x90NZZK 0x91ZK 0x92ZK 0x93ZK 0x94ZK 0x95ZK 0x96–ZK 0x97–ZK 0x98NZZK 0x99ZK 0x9AšZK 0x9BZK 0x9CśZK 0x9DťZK 0x9EžZK 0x9FźZK Hex CP ISO xB0° 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ń.

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

26 26 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 ) - stosowany w Internecie Standard ISO jest zgodny z Polską Normą PN-93 T-42118

27 Unicode 27 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 Standard Unicode zaimplementowany został w wielu nowych technologiach, np. XML, Java, Microsoft.NET Framework, nowe systemy operacyjne

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

29 Podstawowe właściwości Unicode 29 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ć 2 16 =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

30 UTF-8 – kodowanie znaków Unicode 30 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 xxxx 10xxxxxx 10xxxxxx 0x10000 do 0x1FFFFF xxx 10xxxxxx 10xxxxxx 10xxxxxx 0x do 0x3FFFFFF xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 0x do 0x7FFFFFFF x 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).

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

32 32 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)

33 UTF-8 – Wady 33 Znaki CJK (chiński-japoński-koreański) zajmują po 3 bajty zamiast 2 w kodowaniach narodowych. 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. 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

34 UTF W standardzie Unicode pozycjom z przedziału D800–DFFF nie są przypisane żadne znaki, zatem każda sekwencja słów kodowych jest interpretowana jednoznacznie. Sposób ten wymaga użycia szesnastobitowych słów Dla znaków na pozycjach poniżej (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 zostanie zamieniony na sekwencję D800 DC00 a znak o kodzie 10FFFD (górna granica unikodu) na DBFF DFFD.

35 UTF 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. wymaga użycia trzydziestodwubitowych słów. Zestaw znaków jest też zdefiniowany w standardzie ISO jako UCS-4 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) 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.

36 Kod EBCDIC 36 (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 ABCDEF 40 âäàáãåçñ[.<(+! 50 &éêëèíîïìß]$*);^ 60 -/ÂÄÀÁÃÅÇѦ,%_>? Øabcdefghi«»ðýþ ± 90 ° jklmnopqrªºæ¸Æ¤ A0 µ~stuvwxyz¡¿ÐÝÞ® B0 ¢£¥·© § ¶¼½¾¬|¯ ¨´× C0 {ABCDEFGHI­ôöòóõ D0 }JKLMNOPQR¹ûüùúÿ E0 \ ÷ STUVWXYZ²ÔÖÒÓÕ F ³ÛÜÙÚ

37 Kod Radix Kod ten jest nazywany Rad-50 lub RAD50, zaprojektowany przez Digital Equipment Corporation dla komputerów DECsystem, PDP, i VAX. PDP-6, PDP-10/DECsystem-10, DECSYSTEM-20 m. s. bits Least significant bits space ABCDE 010FGHIJKLM 011NOPQRSTU 100VWXYZ.$ % 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: 1.3 znaki na słowie 16 bitowym. 2.6 znaków wraz z flagą informacyjną na słowie 36 bitowym.

38 Kod Radix PDP-11, VAX m. s. bits Least significant bits spaceABCDEFG 001HIJKLMNO 010PQRSTUVW 011XYZ$. % Łańcuchy tekstowe są kodowane na kolejnych słowach. Pierwszy znak w obrębie słowa zajmuje najstarszą pozycję. Każdy łańcuch jest uzupełniany spacjami na końcu do wielokrotności trzech znaków. 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) * = 1683 (4*40 + 5) * = 6606

39 Kod Radix Rad-50 był często stosowany w tablicach symboli dla różnych języków programowania dla PDP-11. Istnieje wiele odmian kodowania Rad-50. Np. w systemie operacyjnym RT-11 wartość 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ć)

40 Kod Base64 40 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.ZnakWart.ZnakWart.ZnakWart.ZnakWart.ZnakWart.Znak 0A11L22W33h44s553 1B12M23X34i45t564 2C13N24Y35j46u575 3D14O25Z36k47v586 4E15P26a37l48w597 5F16Q27b38m49x608 6G17R28c39n50y619 7H18S29d40o51z62+ 8I19T30e41p52063/ 9J20U31f42q531 10K21V32g43r542pad= 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

41 Kod Base64 41 Idealy sa jak gwiazdy - nie mozna ich osiagnac, ale mozna sie nimi kierowac. SWRlYWx5IHNhIGphayBnd2lhemR5IC0gbmllIG1vem5hIGljaCBvc2lhZ25hYywgY WxlIG1vem5hIHNpZSBuaW1pIGtpZXJvd2FjLg0K 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:


Pobierz ppt "Architektura systemów komputerowych (jesień 2013) Wykład 4 Reprezentacja danych część 4 dr inż. Wojciech Bieniecki Instytut Matematyki i Informatyki"

Podobne prezentacje


Reklamy Google