Technologie informacyjne Wykład IV-VI

Podobne dokumenty
Technologie Informatyczne Wykład IV/V

Dla człowieka naturalnym sposobem liczenia jest korzystanie z systemu dziesiętnego, dla komputera natomiast korzystanie z zapisu dwójkowego

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze

Techniki multimedialne

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

RODZAJE INFORMACJI. Informacje analogowe. Informacje cyfrowe. U(t) U(t) Umax. Umax. R=(0,Umax) nieskończony zbiór możliwych wartości. Umax.

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10).

Systemy liczenia. 333= 3*100+3*10+3*1

Teoretyczne Podstawy Informatyki

Architektura komputerów

Kod U2 Opracował: Andrzej Nowak

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Pracownia Komputerowa wykład VI

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 =

1259 (10) = 1 * * * * 100 = 1 * * * *1

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze

12. Wprowadzenie Sygnały techniki cyfrowej Systemy liczbowe. Matematyka: Elektronika:

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawy Informatyki dla Nauczyciela

Stan wysoki (H) i stan niski (L)

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit)

Komunikacja człowiek-komputer

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika

kodowanie informacji Autor prezentacji: 1 prof. dr hab. Maria Hilczer

Podstawy Informatyki

Informatyka kodowanie liczb. dr hab. inż. Mikołaj Morzy

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

Wstęp do informatyki. Pojęcie liczebności. Zapis liczb. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Pracownia Komputerowa wykład IV

Wprowadzenie do informatyki i użytkowania komputerów. Kodowanie informacji System komputerowy

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI

Systemy zapisu liczb.

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne

Podstawy informatyki (2)

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński

Pracownia Komputerowa wykład V

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

SYSTEMY LICZBOWE 275,538 =

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura

Ćwiczenie nr 3. Wyświetlanie i wczytywanie danych

Wstęp do informatyki. Pojęcie liczebności. Liczenie bez liczebników. Podstawy arytmetyki komputerowej. Cezary Bolek

Arytmetyka liczb binarnych

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci:

Pracownia Komputerowa wyk ad VI

Wykład I: Kodowanie liczb w systemach binarnych. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

Mikrokontroler ATmega32. Język symboliczny

L6.1 Systemy liczenia stosowane w informatyce

PODSTAWY INFORMATYKI. Informatyka? - definicja

1.1. Pozycyjne systemy liczbowe

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery

Wykład 2. Informatyka Stosowana. 9 października Informatyka Stosowana Wykład 2 9 października / 42

Wykład 2. Informatyka Stosowana. 10 października Informatyka Stosowana Wykład 2 10 października / 42

Pracownia Komputerowa wyk ad IV

Wstęp do informatyki- wykład 1 Systemy liczbowe

Wstęp do informatyki- wykład 2

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M

Technologie Informacyjne

Jednostki informacji. Bajt moŝna podzielić na dwie połówki 4-bitowe nazywane tetradami (ang. nibbles).

Wstęp do informatyki- wykład 1

Wstęp do Informatyki

Architektura komputerów

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

Programowanie Niskopoziomowe

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Met Me ody numer yczne Wykład ykład Dr inż. Mic hał ha Łan Łan zon Instyt Ins ut Elektr Elektr echn iki echn i Elektrot Elektr echn olo echn

Sprzęt komputera - zespół układów wykonujących programy wprowadzone do pamięci komputera (ang. hardware) Oprogramowanie komputera - zespół programów

Liczby zmiennoprzecinkowe i błędy

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych.

Pozycyjny system liczbowy

Architektura komputerów

Kodowanie liczb całkowitych w systemach komputerowych

Arytmetyka komputera

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

Technika Cyfrowa i Mikroprocesorowa

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość.

Znaki w tym systemie odpowiadają następującym liczbom: I=1, V=5, X=10, L=50, C=100, D=500, M=1000

2 Arytmetyka. d r 2 r + d r 1 2 r 1...d d 0 2 0,

Systemy liczbowe używane w technice komputerowej

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów.

Luty 2001 Algorytmy (7) 2000/2001

Zmienne, stałe i operatory

Urządzenia Techniki. Klasa I TI. System dwójkowy (binarny) -> BIN. Przykład zamiany liczby dziesiętnej na binarną (DEC -> BIN):

ARCHITEKTURA KOMPUTERÓW. Reprezentacja danych w komputerach

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI

Cel wykładu. Cel wykładu. Cel wykładu, cd. Cel wykładu, cd. Cel wykładu, cd. Z. Postawa, "Podstawy Informatyki II" Strona: 1 z 6

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Transkrypt:

Technologie informacyjne -VI A. Matuszak 8 marca 2013 A. Matuszak Technologie informacyjne -VI A. Matuszak Technologie informacyjne -VI 1

Maszyna Turinga taśma zwiera p symboli (pamięć) maszyna może być w jednym q stanów (procesor) A. Matuszak (3) Technologie informacyjne -VI Rozkazy procesora Każdy procesor posiada listę rozkazów, które jest w stanie wykonać. Każdy rozkaz jest zakodowany jako ciąg bitów. Dla różnych procesorów taki sam rozkaz (np. ADD) może mieć inną sekwencję bitów. Nieprzenośność! Rozkazy są nieodróżnialne od danych! bitowo kod 00000001 ADD 00000010 MUL 00000011 SUB 00000100 DIV 00000101 JMP 00000111 LOA 00001000 CMP 00001001 NOP A. Matuszak (4) Technologie informacyjne -VI 2

Program Program (dokładnie: plik z obrazem programu) to sekwencja bitów zawierająca zarówno kody rozkazów jak i dane. model von Neumanna rozkazy i dane przeplatają się, ryzyko pomyłki lub celowego działania (wirusy) model harvardzki dwa osobne ciągi, jeden z rozkazami drugi z danymi, podwójna szyna danych A. Matuszak (5) Technologie informacyjne -VI Assembler można ręcznie napisać program w postaci binarnej zamiast żmudnie zapisywać kody rozkazów (np. 32 bitowe) przyjęło się stosować zapis symboliczny nazw poszczególnych rozkazów, np. ADD, MUL, DIV, JMP tak zapisany program nazywa się programem w języku Assemblera specjalny program (także zwany assemblerem) tłumaczy zapis symboliczny na plik z obrazem programu wykonywalnego A. Matuszak (6) Technologie informacyjne -VI 3

Programowanie w assemblerze Język assemblera jest zależny od procesora i bardzo żmudny w użyciu (chociaż bardzo wydajny), jest też bardzo nienaturalny dla człowieka mikrokontroler krytyczne fragmenty programu (np. BLAS) A. Matuszak (7) Technologie informacyjne -VI Języki wysokiego poziomu następnym krokiem było wymyślenie języka łatwiejszego dla człowieka i niezależnego od typu procesora: języka wysokiego poziomu język wysokiego poziomu zawiera kilka podstawowych (abstrakcyjnych) instrukcji język wysokiego poziomu wymaga specjalnego programu: kompilatora, który przetłumaczy jego instrukcje na assembler kompilator musi być inny dla każdego hardware u (typu procesora) A. Matuszak (8) Technologie informacyjne -VI 4

Języki wysokiego poziomu Istnieją różne języki wysokiego poziomu, ogólne, jak i specyficzne do danego zagadnienia. Jednym z pierwszych języków był Fortran (FORmula TRANslator) szczególnie wygodny przy obliczeniach matematyczno-inżynierskich Jednym z najpopularniejszych języków jest język C Językiem tradycyjnie używanym do nauki programowania jest Pascal A. Matuszak (9) Technologie informacyjne -VI Kompilacja 1. translacja zamiana kodu źródłowego programu na assembler 2. asemblacja zamiana assemblera na program lub częściej na tzw. półkompilat (.o,.obj) 3. konsolidacja (ang. linkowanie) łączenie wszystkich półkompilatów oraz dołączanie bibliotek, w wyniku dostajemy program. A. Matuszak (10) Technologie informacyjne -VI 5

Interpreter Interpreter przetwarza instrukcje jedna po drugiej i natychmiast wykonuje. A. Matuszak (11) Technologie informacyjne -VI Instrukcje języka wysokiego poziomu instrukcja przypisania instrukcje sterujące A. Matuszak (12) Technologie informacyjne -VI 6

Zmienna Zmienna to symboliczna nazwa komórki pamięci, gdzie wpisana jest pewna wartość. Kompilator (interpreter) dba o właściwy przydział, w assemberze progamista musiał pamiętać do którego bajtu pamięci wpisał daną wielkość. A. Matuszak (13) Technologie informacyjne -VI Instrukcja przypisania x 7 niech nowa wartość x wynosi 7 w większości języków przypisanie jest wyrażane znakiem = to nie jest równanie! x = x + 1 x x + 1 wartości lewo i prawostronne ta sama instrukcja może być tłumaczona na różne polecenia assemblera, x = 1, x = 1.1 A. Matuszak (14) Technologie informacyjne -VI 7

Instrukcje sterujące warunkowa jeśli warunek jest spełniony wykonaj pewien ciąg instrukcji pętli o określonej ilości przebiegów pętli nieokreślonej ilości przebiegów wielokrotnego wyboru skoku od 30 lat niepożądana A. Matuszak (15) Technologie informacyjne -VI Funkcja również instrukcja sterująca umożliwia skrócenie programu, gdyż powtarzające się fragmenty zamykane są w funkcji umożliwia rozbicie złożonego problemu na ciąg prostszych problemów, prostszych na jeszcze prostsze itd. aż uzyskamy ciąg elementarnie prostych zagadnień, te zamykamy w funkcje (które łatwo napisać), z nich budujemy bardziej skomplikowane funkcje itd. A. Matuszak (16) Technologie informacyjne -VI 8

Argumenty funkcji przekazywanie argumentów przez zmienną przekazywanie argumentów przez wartość (kopiowanie) A. Matuszak (17) Technologie informacyjne -VI Ale o co chodzi? Ile wynosi x na końcu? funkcja y=f(x) x=1; y=x+1; koniec funkcji... x=7; z=f(x); x=? A. Matuszak (18) Technologie informacyjne -VI 9

przez zmienną skoro zmienna x jest przekazywana do funkcji i ta zmienia jej wartość to po wyjściu z funkcji wartość x jest zmieniona i wynosi 1 przez wartość (kopię) najpierw na stosie tworzona jest kopia zmiennej x o takiej samej wartości i funkcja wszystkie operacje wykonuje na kopii, więc wartość samej zmiennej x pozostaje nienaruszona i dalej jest 7 Przekazywanie argumentów przez wartość jest bezpieczniejsze. Napisać funkcję, która wczytuje do zmiennej x wartość wprowadzoną z klawiatury! A. Matuszak (19) Technologie informacyjne -VI Pozycyjny układ liczenia Cyfry rzymskie: IX+LC=? Cyfry arabskie: 2341 = 2 1000+3 100+4 10+1 1 = 2 10 3 +3 10 2 +4 10 1 +1 10 0 Pozycyjny układ liczenia: ABC a = A a 2 + B a 1 + C a 0 A. Matuszak (20) Technologie informacyjne -VI 10

Układ dwójkowy: 10111 2 = 1 2 4 +0 2 3 +1 2 2 +1 2 1 +1 2 0 = 1 16+0 8+1 4+1 2+1 1 = 23 10 Układ ósemkowy: 123 8 = 1 8 2 + 2 8 1 + 3 8 0 = 1 64 + 2 8 + 3 1 = 83 10 Układ szesnastkowy (A=10, B=11,... F=15): 71 16 = 7 16 1 + 3 16 0 = 7 16 + 1 1 = 113 10 F 1 16 = 15 16 1 + 3 16 0 = 15 16 + 1 1 = 241 10 A. Matuszak (21) Technologie informacyjne -VI Przeliczanie z dziesiętnego na dwójkowy Kolejne reszty z dzielenia liczy przez 2 dają (od końca) liczbę dwójkową. 23 : 2 = 11 r 1 11 : 2 = 5 r 1 5 : 2 = 2 r 1 2 : 2 = 1 r 0 1 : 2 = 0 r 1 23 10 = 10111 2 A. Matuszak (22) Technologie informacyjne -VI 11

Przeliczanie z dwójkowego na ósemkowy i szesnastkowy dzielimy liczbę na grupy po trzy cyfry: 10111 2 = {10} {111} = {2} {4 + 2 + 1} = {2} {7} = 27 8 dzielimy liczbę na grupy po cztery cyfry: 10111 2 = {1} {0111} = {1} {4 + 2 + 1} = {1} {7} = 17 16 = 23 10 A. Matuszak (23) Technologie informacyjne -VI Kod Morse a e. o --- s... t - sos... ---......---... eeeoeee? sos? eeettteee /.../---/.../ sos /./././---/./././ eeeoeee Trzy stany:., - i / (0,1 i 2) A. Matuszak (24) Technologie informacyjne -VI 12

Kodowanie stałej i zmiennej długości Kod Morse a jest przykładem kodowania o zmiennej długości (każdy znak może mieć inną ilość kropek/kresek). Wtedy niezbędny jest separator. Alternatywą jest użycie kodowania o stałej długości Braille, Baudot (dalekopis). A. Matuszak (25) Technologie informacyjne -VI Komputer Brak separatora w reprezentacji binarnej. Procesor przetwarza dane w porcjach o ustalonej wielkości (ilość bitów). Procesor ma zdefiniowaną, niewielką liczbę typów danych, które potrafi przetwarzać. Każdy typ ma określoną długość (ilość bitów) i reprezentację (znaczenie bitów). Typy danych i ich reprezentacja są cechami architektury komputera (głównie procesora). Programista może używać własnych typów ale musi oprogramować operacje. A. Matuszak (26) Technologie informacyjne -VI 13

Bit wartość reprezentująca 0 lub 1. Każda liczba (całkowita) zapisana w postaci dwójkowej (binarnej) odpowiada sekwencji (ciągowi) bitów. Ze względów praktycznych bity grupujemy w porcje zwane bajtami. 1 bajt (1B) (ang. byte) zawiera 8 bitów. Wielokrotności bajtu to: kilobajt (kb) równy 1024 B megabajt (MB) 1024 2 B gigabajt (GB) 1024 3 B ( 1.07 10 9 B) Konflikt z przedrostkami SI. KiB (kibibajty), MiB (mibibajty), GiB (gibibajty) A. Matuszak (27) Technologie informacyjne -VI Ustalenie długości (ilości bitów) nie zawsze jednoznacznie określa reprezentację. W wielu przypadkach istnieją różne możliwości reprezentacji przy ustalonej długości. A. Matuszak (28) Technologie informacyjne -VI 14

ze znakiem Jeśli chcemy uwzględnić znak liczby to musimy poświęcić jeden bit na zaznaczenie, że liczba jest ujemna. Powoduje to, że pierwszy bit znaczy co innego niż wszystkie pozostałe. Oprócz tego mamy +0 i -0. Arytmetyka uzupełnieniowa: najbardziej znaczący bit ma znak -. 10111 U2 = 1 2 4 +0 2 3 +1 2 2 +1 2 1 +12 0 = 16+4+1 = 11 (wiodące zera!) A. Matuszak (29) Technologie informacyjne -VI Najprostszy pomysł, para liczb całkowitych: 1234.56 1234 i 56 Znaczne ograniczenie zakresu. Liczba rzeczywista w postaci znormalizowanej: 1234.56 = 0.123456 10 5 Lepszy pomysł, trójka liczb całkowitych: 0.123456 10 5 0 123456 5 Zera nie trzeba pamiętać, jeśli umówimy się, że pierwsza cyfra z drugiej trójki jest różna od zera! Jak zapisać 0.0? A. Matuszak (30) Technologie informacyjne -VI 15

Pozornie oczywista reprezentacja znaków (liter, cyfr, znaków interpunkcyjnych i in.) sprawia duże kłopoty. A. Matuszak (31) Technologie informacyjne -VI taśma dziurkowana dalekopis NR Kod Lit. Zn 1 A - 2 B? 3 C : 4 D $ 5 E 3 6 F! 7 G & 8 H $ 9 I 8 10 J 11 K ( 12 L ) 13 M. 14 N, 15 O 9 16 P 0 NR Kod Lit. Zn 17 Q 1 18 R 4 19 S BELL 20 T 5 21 U 7 22 V ; 23 W 2 24 X / 25 Y 6 26 Z 27 CR 28 LF 29 LETTERS 30 FIGURES 31 SPACE 32 BLANK A. Matuszak (32) Technologie informacyjne -VI 16

ASCII ACSII to międzynarodowy standard zapisu znaków (liter, cyfr i in.) przy pomocy ciągu bitów. Jako wyjątek od reguły ASCII jest niezależny od architektury. Każdy znak jest zapisany w jednym bajcie czyli na 8 bitach. Każdemu znakowi jest przypisana pozycja w tabeli. Każdej pozycji (liczbie od 0) przypisana jest sekwencja bitów będąca reprezentacją dwójkowa pozycji. Znaków może być 256. A. Matuszak (33) Technologie informacyjne -VI {b 7 b 6 b 5 } {b 4 b 3 b 2 b 1 } {0 7} {0 F } A. Matuszak (34) Technologie informacyjne -VI 17

A. Matuszak (35) Technologie informacyjne -VI A. Matuszak (36) Technologie informacyjne -VI 18

ASCII Art =;-) [8^/ %-o )_) )_) )_) ) )) )) )\ ) ) ) )\\ \\\ ---------\ /--------- ^^^^^ ^^^^^^^^^^^^^^^^^^^^^ ^^^^ ^^^^ ^^^ ^^ ^^^^ ^^^ A. Matuszak (37) Technologie informacyjne -VI Rozszerzone ASCII narodowe. polskie: ą, ę, ć, ł, ó, ń, ś, ź, ż Strony kodowe: cp852, ą 165, ę 169 cp1250, ą 185, ę 234 iso 8859 2, ą 177, ę 234 Brak informacji o kodowaniu wewnątrz dokumentu!! A. Matuszak (38) Technologie informacyjne -VI 19

MIME Poczta elektroniczna Content-Type: text/plain; charset=... Content-Transfer-Encoding:... 8bit Wykłady odbywają się we środy quoted printable Wyk=B3ady odbywaj=b1 si=ea we =B6rody base64 (nie używać do tekstu!!) V3lrs2FkeSBvZGJ5d2FqsSBzaeogd2UgtnJvZHkK A. Matuszak (39) Technologie informacyjne -VI Unicode utf 16 65536 znaków każdy znak jest zapisywany na dwu bajtach, ponieważ znak o kodzie 0 (null byte) jest powszechnie używanym separatorem, konflikt z istniejącymi systemami informatycznymi utf 8 4.29 10 9 znaków zmienna długość, od 1 do 4 bajtów przy 1 bajcie zgodny z podstawowym ASCII, więc null bajt zachowuje swoje znaczenie A. Matuszak (40) Technologie informacyjne -VI 20

Czcionki 16x16=256 4 miliardy (znaków) x 256 (pól) x 8 (kolorów) > 8 TB?? A. Matuszak (41) Technologie informacyjne -VI Cyfry w liczbie: 1234 Pismo: od lewej do prawej od prawej do lewej od góry do dołu Kolejność liczebników: polski: dwadzieścia-jeden angielski: twenty-one niemiecki: ein-und-zwanzig A. Matuszak (42) Technologie informacyjne -VI 21

(2) Kod pocztowy: Europa kontynentalna kod miasto: 31 155 Kraków Kraje anglosaskie miasto kod: BOURNEMOUTH BH1 1AA Data (LC TIME): polski (dawny): dd/mm/yyyy 13/07/2003 polski (nowy): yyyy-mm-dd 2003-07-13 amerykański: mm/dd/yyyy 07/13/2003 (Farenheit 9/11 Farenheit 11 września) A. Matuszak (43) Technologie informacyjne -VI Kolejność bajtów Jonathan Swift Podróże Guliwera. Wojna Liliputów i Blefusków czy jajko należy obierać od grubego końca czy od cienkiego. Analogiczny i równie zażarty spór toczył (i toczy) wśród informatyków na temat kolejności danych. Przedmiot sporu najczęściej ilustruje się przykładzie czterech bajtów. Czy powinny być w kolejności 1-2-3-4 czy też 4-3-2-1 A. Matuszak (44) Technologie informacyjne -VI 22

Kolejność bajtów - Endian big endian big end first, grubokońcowość 4-3-2-1 naturalna kolejność procesory SPARC, Motorola 68000, PowerPC little endian little end first, cienkokońcowość kolejność 1-2-3-4 kolejność operacji (przeniesienia) procesory Intel x86, AMD64 middle-endian (historyczny) kolejność 2-1-4-3 (lub 3-4-1-2) szerokość szyny danych a procesor! DEC PDP-11 A. Matuszak (45) Technologie informacyjne -VI bez znaku 32 bity [0 4294967295] 64 bity [0 18446744073709551615] ze znakiem 32 bity [ 2147483648 2147483647] 64 b. [ 9223372036854775808 9223372036854775807] 10! = 3628800 (7cyfr) 15! = 1307674368000 (14 cyfr, większe iż MAX INT ) ( ) 15 = 15! 15 14 11 = = 360360 = 3003 10 10! 5! 5! 120 A. Matuszak (46) Technologie informacyjne -VI 23

Zegar A. Matuszak (47) Technologie informacyjne -VI Arytmetyka liczb całkowitych a b = c mod(max INT + 1) A. Matuszak (48) Technologie informacyjne -VI 24

Matematyka a komputer Z punktu widzenia matematyki jest obojętne w jaki sposób obliczamy wartość, w przypadku użycia komputera sposób obliczania nie jest obojętny!! A. Matuszak (49) Technologie informacyjne -VI 120! = 6 689 502 913 449 127 057 588 118 054 090 372 586 752 746 333 138 029 810 295 671 352 301 633 557 244 962 989 366 874 165 271 984 981 308 157 637 893 214 090 552 534 408 589 408 121 859 898 481 114 389 650 005 964 960 521 256 960 000 000 000 000 000 000 000 000 000 6, 69 10 198 (liczba blisko 200-cyfrowa) A. Matuszak (50) Technologie informacyjne -VI 25

101.11011 2 = 1 2 2 +0 2 1 +1 2 0 +1 2 1 +1 2 2 +0 2 3 +1 2 4 = 1 4 + 0 2 + 1 1 + 1 1 2 + 1 1 4 + +0 1 8 + 1 1 16 + 1 1 32 = 5.84375 10 0.84375 10 =?? 2 0.84375 2 = 1.6875 1 + 0.6875 0.6875 2 = 1.375 1 + 0.375 0.375 2 = 0.75 0 + 0.75 0.75 2 = 1.5 1 + 0.5 0.5 2 = 1 1 + 0.0 A. Matuszak (51) Technologie informacyjne -VI 1 5 = 0.2 10 =?? 2 0.2 2 = 0.4 0 + 0.4 0.4 2 = 0.8 0 + 0.8 0.8 2 = 1.6 1 + 0.6 0.6 2 = 1.2 1 + 0.2 0.2 10 = 0.(0011)(0011)(0011)... (0011) 2 Rozwinięcie nieskończone, okresowe!!! (Patriot kontra Scud) A. Matuszak (52) Technologie informacyjne -VI 26

Arytmetyka IEEE 754 Zmiennoprzecinkowa arytmetyka koprocesora x87. FPU (Floating Point Unit). Dla linii procesorów x86 od Intel 80486DX FPU został wbudowany do procesora. A. Matuszak (53) Technologie informacyjne -VI Arytmetyka IEEE 754 Dwa rodzaje liczb zmiennoprzecinkowych: pojedynczej precyzji 32 bity float podwójnej precyzji 64 bity double Reprezentacja (ilość bitów) jest taka sama dla procesorów 32 bitowych (obecne Intele, AMD etc.) jak i dla procesorów 64 bitowych (Ithanium AMD64). Zakres dla liczb pojedynczej precyzji obejmuje ±1.18 10 38 do około ±3.4 10 39. Zakres dla liczb podwójnej precyzji obejmuje ±2.2 10 308 do około ±1.8 10 308. Stała Plancka h = 6, 6260693(11) 10 34 J s A. Matuszak (54) Technologie informacyjne -VI 27

Arytmetyka IEEE 754 Część ułamkowa (fraction) jest normalizowana tak aby pierwszy bit był jedynką i ta jedynka nie jest zapamiętywana. W konsekwencji nie da się reprezentować w ten sposób wartości 0.0 A. Matuszak (55) Technologie informacyjne -VI Arytmetyka IEEE 754 wartości specjalne IEEE 754 ma reprezentację specjalną dla kilku wartości: 0.0 jest reprezentowane przez dwie wartości +0.0 i 0.0, które się różnią! Inf nieskończoność, istnieje zarówno + jak i NaN symbol nieoznaczony, (Not a Number) A. Matuszak (56) Technologie informacyjne -VI 28

Arytmetyka IEEE 754 wartości specjalne Po lewej stronie: 1.0/0.0 Inf 1.0/0.0 -Inf 0.0/0.0 NaN Po prawej stronie!!: x =Inf y =NaN x y NaN A. Matuszak (57) Technologie informacyjne -VI Arytmetyka liczb zmiennoprzecinkowych Skończona ilość bitów reprezentacji powoduje, że możemy jedynie reprezentować skończoną liczbę wartości. Skutki: Rozdzielność mnożenia względem dodawania (odejmowania): ( 4 3 1) 3 1 = 4 3 3 3 Punkt przecięcia dwu prostych może nie należeć do żadnej z nich. Dwie proste równoległe mogą się przecinać. { 1x + 3y = 6 1 3 x + 1y = 5 A. Matuszak (58) Technologie informacyjne -VI 29

Proste się przecinają 4 3x-5y=0 2x+3y=8 (2,1) 3 2 1 0-1 0 1 2 3 4 5 A. Matuszak (59) Technologie informacyjne -VI Geometria A. Matuszak (60) Technologie informacyjne -VI 30

Topologia A. Matuszak (61) Technologie informacyjne -VI 31