Algorytmy i struktury danych

Podobne dokumenty
Algorytmy i struktury danych

Algorytmy i struktury danych

Techniki multimedialne

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

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

Podstawy Informatyki dla Nauczyciela

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

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

L6.1 Systemy liczenia stosowane w informatyce

Algorytmy i struktury danych

Pracownia Komputerowa wykład V

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

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

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

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

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

Wstęp do informatyki- wykład 1

Systemy zapisu liczb.

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

1.1. Pozycyjne systemy liczbowe

Pracownia Komputerowa wykład VI

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

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

Algorytmy i struktury danych

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

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

Podstawy Informatyki

Pracownia Komputerowa wyk ad VI

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

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

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

Wstęp do informatyki- wykład 2

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Pracownia Komputerowa wykład IV

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

System Liczbowe. Szesnastkowy ( heksadecymalny)

Kod U2 Opracował: Andrzej Nowak

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

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

9 10 = U1. Przykład dla liczby dziesiętnej ( 9): negacja 1001= =10110 U1. Podsumowując: w zapisie dziesiętnym

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

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

Pracownia Komputerowa wyk ad V

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

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

Programowanie Niskopoziomowe

Naturalny kod binarny (NKB)

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

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

Technologie Informacyjne

SYSTEMY LICZBOWE 275,538 =

Pracownia Komputerowa wyk ad IV

Laboratorium Wykorzystanie kalkulatora Windows do obliczania adresów sieciowych

Pozycyjny system liczbowy

Arytmetyka stało i zmiennoprzecinkowa

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

PYTANIA BUDOWA KOMPUTERA kartkówki i quizy

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

Architektura komputerów

Metoda znak-moduł (ZM)

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb.

Arytmetyka binarna - wykład 6

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

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

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

Jednostki miar stosowane w sieciach komputerowych. mgr inż. Krzysztof Szałajko

Zapis liczb binarnych ze znakiem

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

Mikrokontrolery w mechatronice. Wstępne uwagi

ARCHITEKTURA KOMPUTERÓW Systemy liczbowe

1. Operacje logiczne A B A OR B

ARYTMETYKA KOMPUTERA

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

Podstawy Informatyki

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

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

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

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

Podstawy informatyki. Reprezentacja danych w systemach cyfrowych

Systemy liczbowe. 1. System liczbowy dziesiętny

Arytmetyka liczb binarnych

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

Który z podzespołów komputera przy wyłączonym zasilaniu przechowuje program rozpoczynający ładowanie systemu operacyjnego? A. CPU B. RAM C. ROM D.

Cyfrowy zapis informacji

Arytmetyka. Arytmetyka. Magdalena Lemańska. Magdalena Lemańska,

Kodowanie informacji. Kody liczbowe

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

INFORMATYKA. Zajęcia organizacyjne. Arytmetyka komputerowa.

PODSTAWY INFORMATYKI. Informatyka? - definicja

Teoretyczne Podstawy Informatyki

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

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29.

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

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

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

Systemy liczbowe używane w technice komputerowej

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Transkrypt:

Algorytmy i struktury danych 5. Pamięć komputera Łódź 2013

Bity i bajty Pamięć komputera jest kategoryzowana wg dostępu, szybkości i pojemności. Typ Szybkość dostępu Odległość do CPU Pojemność Ulotna? Rejestr Najszybsza Wewnątrz 10 s tak Podręczna B. szybka Obok MB tak RAM Szybka Blisko GB tak Dysk twardy Wolna Daleko TB nie - Pamięć komputera można sobie wyobrazić jako ciąg elektronicznych łączników on/off. Każdy z nich to bit (b). Grupa 8 bitów to bajt (B). - Bity są interpretowane jako liczby: off to 0, a on to 1, np: off on on off on off off off 0 1 1 0 1 0 0 0 2

Liczby dziesiętne i dwójkowe Liczby, których najczęściej używamy to liczby dziesiętne albo o podstawie 10. 2 1 7 4 1000 100 10 1 = 2*1000 + 1*100 + 7*10 + 4*1 10 3 10 2 10 1 10 0 Liczby dwójkowe albo o podstawie 2 są sumą potęg liczby 2, a nie 10. 1 0 1 1 = 1*8 + 0*4 + 1*2 + 1*1 = 11 8 4 2 1 2 3 2 2 2 1 2 0 >>> bin(11) >>> int(0b1011) >>> bin(2174) #Bardzo dlugi ciąg! 3

Liczby szesnastkowe Liczby szesnastkowe są liczbami o podstawie 16; są sumą potęg liczby 16 mnożonych przez następujące liczby: 0 1 2 3 4 5 6 7 8 9 A B C D E F Każde cztery bity można uważać za pojedynczą szesnastkową cyfrę, ponieważ cztery bity mogą reprezentować liczby z zakresu od 0 do 15. >>> hex(15) >>> hex(255) >>> hex(2**32) >>> hex(-1024) - Liczby całkowite bez znaku są przechowywane w pamięci jak liczby dwójkowe. - Liczby całkowite ze znakiem są przechowywane z użyciem kodu uzupełnień do dwóch; reprezentacja ta jest poza zakresem niniejszego przedmiotu. 4

Rozmiar pamięci - Pojemność pamięci wyraża się w bajtach z prefiksem, dla określenia skali. Prefiksy są zapożyczone z systemu dziesiętnego: Prefiks Wartość kilo- mega- giga- tera- 10 3 = 1000 = 1 tysiąc 10 6 = 1,000,000 = 1 milion 10 6 = 1,000,000,000 = 1 miliard 10 9 = 1,000,000,000,000 = 1 bilion - Ponieważ pamięć komputera jest zbiorem bitów, do określenia rozmiaru pamięci używa się potęg liczby 2. - Wartości te są bliskie odpowiednim wielkościom dziesiętnym, ale nie są dokładnie takie same. Prefiks Wartość kilo- 2 10 = 1024 mega- 2 20 = 1,048,576 giga- 2 30 = 1,073,741,824 tera- 2 40 = 1,099,511,627,776 5

Liczby zmiennoprzecinkowe Jaki będzie wynik obliczeń poniższego programu? >>> x = 0 >>> while x!= 1: >>> print (x) >>> x += 0.1 Uruchom go. Czy otrzymałeś oczekiwany rezultat? Czy 0.1 równa się 1/10? >>> x = 0.1 >>> print x >>> print %.32f % (x) Liczby są reprezentowane z podstawą dwójkową; liczba 0.1 ma nieskończony ciąg binarny w tej reprezentacji, 1/10 = 0.0001100110011 Podobnie, liczba 1/3 nie może być zapisana dokładnie w systemie dziesiętnym, 1/3 = 0.333333 6

Liczby zmiennoprzecinkowe Ułamki są przetwarzane na liczby dwójkowe tak samo jak liczby całkowite, tyle że korzysta się przy tym z ujemnych potęg liczby 2, np. 0. 1 0 1 1 = 1*1/2 + 0 *1/4 + 1*1/8 + 1*1/16 = 11/16 2-1 2-2 2-3 2-4 Liczba 1/16 ma skończoną reprezentacje dwójkową, ale nie ma jej liczba 1/10: 1/10 = 0.0001100110011 Z tego powodu liczba 1/10 nie może być zapisana dokładnei jako wartość zmiennoprzecinkowa w komputerze binarnym. Wniosek: Do porównania liczb zmiennoprzecinkowych używaj nierówności. Ponieważ wielu wartości liczb zmiennoprzecinkowych nie można zapisac dokładnie w pamięci, porównanie tych liczb z uzyciem operatorów == lub!= jest ryzykowne. Gdzie to tylko możliwe, należy stosować operatory z nierównościami (<, <=, >, >=). 7

Ćwiczenia 5.1. Jak pomnożyć liczbę dwójkową przez 2 bez dodawania ani mnożenia? Jak pomnożyć ją przez 8? Podzielić przez 2? 5.2. Jaka największa liczba dwójkowa może być zapisana w jednym bajcie bez znaku? Jaka to wartość w systemie dziesiętnym? Szesnastkowym? 5.3. Jaka największa liczba dwójkowa może być zapisana w słowie dwubajtowym bez znaku? Jaka to wartość w systemie dziesiętnym? Szesnastkowym? 5.4. Określ największą liczbę całkowitą, która może być zapisana w maszynie 32-bitowej. 5.5. Określ największą liczbę całkowitą, która może być zapisana w maszynie 64-bitowej. 8

Ćwiczenia 5.6. Napisz program binhex.py, który wyświetla tabelkę wartości binarnych i heksadecymalnych dla dziesiętnych liczb całkowitych od 1 do 36. Wskazówka: Użyj %ns, gdzie n jest liczbą cyfr, dla sformatowania wyświetlanych wartości. 5.7. Zamień następujące wartości dziesiętne na dwójkowe. Które z nich mogą, a które nie mogą być zapisane dokładnie? a) 0.25, b) 0.375, c) 5.125, d) 10.4375, e) 0.3, f) 0.5 5.8. Zamień poniższe wartości dwójkowe na dziesiętne a) 0.1, b) 0.0101, c) 0.111, d) 10100.01, e) 111.1011, f) 1000.10001 5.9. Popraw kod pętli while na slajdzie nr 6, tak by obliczenia zakończyły się w oczekiwanej sytuacji. 9

Podsumowanie 1) Liczby binarne są liczbami o podstawie dwa i działają tak samo jak dziesiętne, z takim wyjątkiem, że wykorzystują potęgi liczby 2, a nie 10. 2) Podstawą liczb heksadecymalnych jest liczba 16. Zapewniają one krótszy zapis każe 4 bity są zastąpione przez jeden symbol {0-9,A-F}. 3) Jeśli pojemność pamięci zostaje określona z wykorzystaniem potęg liczby dwa, indeksy kilo-, mega- giga-, tera- itd. oznaczaja inne wartości niż w przypadku specyfikacji dziesiętnej. 4) Komputery wykorzystuję dwójkową reprezentację ułamków, w związku z czym wiele wartości zmiennoprzecinkowych, jak 1/100, 10.5 jest zapisanych z błędami. 5) Operatory == oraz!= nie powinny być używane do porównywania liczb zmiennoprzecinkowych; dla liczb takich odpowiednie są nierówności. 10

Literatura Brian Heinold, Introduction to Programming Using Python, Mount St. Mary s University, 2012 (http://faculty.msmary.edu/heinold/python.html). Brad Dayley, Python Phrasebook: Essential Code and Commands, SAMS Publishing, 2007 (dostępne też tłumaczenie: B. Dayley, Python. Rozmówki, Helion, 2007). Mark J. Johnson, A Concise Introduction to Programming in Python, CRC Press, 2012. 11