Wstęp do programowania

Wielkość: px
Rozpocząć pokaz od strony:

Download "Wstęp do programowania"

Transkrypt

1 Wstęp do programowania Wykład 4 Reprezentacja liczb Janusz Szwabiński Plan wykładu: Zamiast motywacji Reprezentacja liczb całkowitych Reprezentacja liczb rzeczywistych Dokładność w obliczeniach komputerowych Materiały uzupełniające: D. Goldberg, "What Every Computer Scientist Should Know About Floating Point Arithmetic", Computing Surveys (1991) Zamiast motywacji Z lekcji matematyki wiemy, że cos = 0 π 2. Zobaczmy, jak to wygląda w Pythonie: In [7]: import math In [8]: math.cos(math.pi/2) Out[8]: e-17 Wynik jest wprawdzie bardzo mały, jednak różni się od zera. Inny przykład: In [9]: x = 2**30

2 In [10]: x + 2**(-22)==x Out[10]: False In [11]: x + 2**(-23)==x Out[11]: True Okazuje się, że w drugim przypadku komputer traktuje obie liczby jako identyczne! I jeszcze jeden przykład: In [12]: y = In [13]: x = y In [14]: print(x) Wynik różni się nieznacznie od wartości dokładnej! Powyższe przykłady to efekty skończonej dokładności maszyny liczącej, jaką jest komputer. Nie zawsze są one szkodliwe dla prowadzonych obliczeń, jednak warto wiedzieć, dlaczego powstają. Liczby całkowite Liczby całkowite są reprezentowane dokładnie w pamięci komputera, jednak jest ich skończona liczba. W większości języków programowania jest to związane ze stałą liczbą bitów używanych do ich przechowywania. n W ogólności, bitowa liczba całkowita ma wartości od 2^(n 1) do 2^(n 1) 1. Na maszynach 32 bitowych daje to zakres: In [15]: n = 32 imin = -2**(n-1) imax = 2**(n-1)-1 print(imin,"< i <",imax) < i <

3 Natomiast dla maszyn 64 bitowych otrzymamy: In [16]: n = 64 imin = -2**(n-1) imax = 2**(n-1)-1 print(imin,"< i <",imax) < i < W Pythonie jest jednak trochę inaczej. W wersji 2.7 rzeczywiście mamy do dyspozycji typ into powyższych zakresach, jednak wyjście poza zakres powoduje automatyczne przełączenie się interpretera na typ long into teoretycznie nieograniczonej precyzji (liczbie bitów). W praktyce precyzja jest ograniczona pamięcią komputera. Natomiast w wersji 3.X nie ma już rozróżnienia na inti long int. Dlatego w Pythonie można liczyć na liczbach dużo większych niż te zdefiniowane powyżej: In [17]: 2*10**100 Out[17]: Ponieważ jednak Python należy pod tym względem raczej do wyjątków wśród języków programowania, omówimy teraz dwie najczęściej stosowane reprezentacje liczb całkowitych, z których ograniczeń użytkownik Pythona może nie zdawać sobie sprawy. Reprezentacja prosta (bez znaku) N bitowa liczba całkowita z = ( a N 1, a N 2,, a0), a i = {0, 1} i = 0,, N 1 bez znaku jest reprezentowana jako: gdzie ( ) to poszczególne bity. Jej wartość wyliczymy w następujący sposób: z = N 1 i=0 a i 2 i. Natomiast zakres tej reprezentacji to: 0 z 2 N 1. z In [18]: n = 64 imax = 2**(n)-1 print("0 < i <",imax) 0 < i <

4 Przykłady liczb w 8 bitowej reprezentacji: Liczba Reprezentacja

5 Reprezentacja uzupełnieniowa (ze znakiem) N bitowa liczba całkowita z = (,,, ), = {0, 1}, a N 1 a N 2 a0 a i jednak teraz wyliczamy jej wartość ze wzoru: z = a N 1 2 N 1 + N 2 i=0 a i 2 i. Zakres tej reprezentacji: 2 N 1 z 2 N 1 1 z ze znakiem na pierwszy rzut oka reprezentowana jest tak samo, tzn.: Jedną z zalet tej reprezentacji jest łatwe generowanie liczb ujemnych: Ponadto nie trzeba rozróżniać liczb na dodatnie i ujemne przy dodawaniu: Poniżej znajdują się przykłady liczb w 8 bitowej reprezentacji uzupełnieniowej: Liczba Reprezentacja

6 Warto również wspomnieć, że mnożenie przez 2 w tej reprezentacji odpowiada przesunięciu bitów o jedną pozycję w lewo, a dzielenie przez 2 o jedną pozycję w prawo. In [19]: x = 4 In [20]: x << 1 Out[20]: 8 In [21]: x >> 1 Out[21]: 2 Jedyny problem w obliczeniach komputerowych na liczbach całkowitych to wyjście poza zakres (podkreślam jeszcze raz nie dotyczy to Pythona!). Rozważmy następujący przykład w napisany w języku C++:

7 In [22]: %%writefile silnia.cpp #include <iostream> int silnia(int n) { if (n<=1) return 1; else return n*silnia(n-1); } int main () { int n; std :: cout << "Podaj liczbę: "; std :: cin >> n; std :: cout << n << "!= " << silnia(n) << "\n"; } Overwriting silnia.cpp In [23]:!g++ silnia.cpp Efekt kilku wywołań tego programu jest następujący: Podaj liczbę: 12 12!= Podaj liczbę: 16 16!= Podaj liczbę: 17 17!= Mimo,że przy obliczaniu silni mnożymy ze sobą liczby dodatnie, ostatni wynik jest ujemny. Jest to związane z tym, że najczęściej (i C++nie jest tu wyjątkiem) typy całkowite mają strukturę pierścienia, w której zwiększenie liczby największej o 1 da w wyniku liczbę najmniejszą. I odwrotnie zmniejszenie liczby najmniejszej o 1 da liczbę największą.

8 Jeżeli nie pamiętamy, jakie zakresy mają poszczególne typy danych, najczęściej możliwe jest ich podględnięcie z poziomu akurat używanego języka. Np. w C++odpowiednie stałe zdefiniowane są w pliku nagłówkowym climits: In [24]: %%writefile cints.cpp #include <iostream> #include <climits> int main () { std :: cout << SHRT_MAX << "\n" ; std :: cout << INT_MAX << "\n" ; std :: cout << LONG_MAX << "\n" ; } Overwriting cints.cpp In [25]:!g++ cints.cpp -o cints In [26]:!./cints W Fortranie do wyświetlenia największej liczby w danym typie służy funkcja huge: In [27]: %%writefile fints.f90 program integers implicit none integer(kind=1) :: a integer(kind=2) :: b integer(kind=4) :: c integer(kind=8) :: d integer(kind=16) :: e write(6,*) huge(a) write(6,*) huge(b) write(6,*) huge(c) write(6,*) huge(d) write(6,*) huge(e) end program integers Overwriting fints.f90 In [28]:!gfortran fints.f90 -o fints

9 In [29]:!./fints Typ intpythona radzi sobie oczywiście dużo lepiej przy wiliczaniu silni: In [30]: def silnia(n): if n<=1: return 1 else: return n*silnia(n-1) In [31]: silnia(17) Out[31]: In [32]: silnia(100) Out[32]: Należy mieć przy tym świadomość, że "dowolną" precyzję otrzymujemy kosztem wydajności obliczeń. Np. jeżeli wszystkie liczby występujące w obliczeniach i wyniki działań na nich mieszczą się w zakresie odpowiadającym podstawowemu typowi intw Pythonie 2.7, wówczas obliczenia w Pythonie 2.7 zostaną wykonane szybciej niż w 3.5.

10 Liczby zmiennopozycyjne Reprezentacja zmiennopozycyjna to najczęściej obecnie stosowany sposób zapisu liczb rzeczywistych na komputerach. W reprezentacji tej liczba przedstawiona jest za pomocą bazy oraz precyzji (liczby cyfr). Przykład: jeśli i, to liczba będzie miała reprezentację. Problemy: B = 10 p = ze względu na skończoną dokładność (liczbę bitów) nie wszystkie liczby dadzą się przedstawić dokładnie np. dla i liczba będzie miała tylko reprezentację przybliżoną B = 2 p = = B p Postać ogólna Liczba zmiennopozycyjna w bazie i precyzji będzie miała postać: B e Zwróćmy uwagę, że reprezentacja ta nie jest jednoznaczna: liczby przedstawiają liczbę w bazie i precyzji. B p ±d. dd d, ±( d0 + d1b d p 1B (p 1) ) B e, 0 d i B 0.1 B = 10 p = i Reprezentacja znormalizowana Aby uczynić reprezentację jednoznaczną, zakłada się często : uzyskana w ten sposób reprezentacja liczb jest rzeczywiście jednoznaczna, ale... niemożliwe jest przedstawienie w niej zera w naturalny sposób najczęściej przyjmuje się, że 0 reprezentowane jest przez d B e 1 min

11 Standard IEEE 754 IEEE 754 ( ( to standard reprezentacji binarnej i operacji na liczbach zmiennoprzecinkowych. Został on ustanowiony w 1985 r przez Institute of Electrical and Electronics Engineers. Ponieważ rozwiązywał wiele problemów obecnych we wcześniejszych implementacjach reprezentacji zmiennopozycyjnych, stosowany jest powszechnie we współczesnych procesorach i oprogramowaniu obliczeniowym. B = 2 p = 24 i dla liczb w pojedynczej precyzji B = 2 i p = 53 dla liczb w podwójnej precyzji w pojedynczej precyzji liczba maszynowa ma postać: g g = ( 1) s 1.m 2 e 127 przesunięcie wykładnika o 127 (w podwójnej precyzji o 1023) powoduje, że do jego przedstawienia wystarczą liczby dodatnie w pojedynczej precyzji można przedstawić liczby rzeczywiste z zakresu w podwójnej precyzji z zakresu wartości specjalne: wartość NaN + ( ) 0 0/0, /, Liczba Reprezentacja to wynik działań: x mod 0 mod y x, x < q q N an N an najmniejsza co do modułu liczba różna od zera w reprezentacji znormalizowanej ±1, ±2, w pojedynczej precyzji w podwójnej precyzji liczby mniejsze od wartości granicznej w każdej precyzji traktowane jako 0

12 w celu zwiększenia dokładności obliczeń standard IEEE wprowadza również wartości zdenormalizowane wszystkie bity cechy równe 0 i przynajmniej jeden bit mantysy różny od zera najmniejsza liczba w pojedynczej precyzji to najmniejsza liczba w podwójnej precyzji to ±1, ±4, In [33]: import sys In [34]: sys.float_info Out[34]: sys.float_info(max= e+308, max_exp=1024, max_10_ex p=308, min= e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon= e-16, radix=2, round s=1) In [35]: fmax = sys.float_info.max In [36]: print(fmax) e+308 In [37]: 2*fmax Out[37]: inf In [38]: -2*fmax Out[38]: -inf In [39]: 1/(2*fmax) Out[39]: 0.0

13 Przykład reprezentacja liczby 5,375 Przekształcamy liczbę dziesiętną do postaci dwójkowej: 5, 375 = Otrzymaną liczbę normalizujemy: = Pomijamy wiodącą jedynkę w mantysie: Obliczamy wykładnik: = Po określeniu bitu znaku otrzymujemy ostatecznie: znak wykładnik mantysa Typowe problemy w obliczeniach zmiennopozycyjnych Z omówioną powyżej reprezentacją wiążą się pewne niedokładności w codziennych obliczeniach. Rozważmy przykład (w C++): In [40]: %%writefile reprezentacja.cpp #include <iostream> int main() { float x=0.01; if(100.0*x==1.0) std::cout << "Równe :)\n"; else std::cout << "Nierówne :(\n"; } Overwriting reprezentacja.cpp In [41]:!g++ reprezentacja.cpp -o rep In [42]:!./rep Nierówne :( Przyczyną takiego działania programu jest fakt, że liczba 0.01 nie ma dokładnej reprezentacji w standardzie IEEE, i jest przybliżana najbliższą liczbą maszynową. Podobnie:

14 In [43]: %%writefile reprezentacja2.cpp #include <iostream> int main() { float x= , y=7.0; float y1 = 1.0/y; float z= x/y; float z1 = x*y1; if(z==z1) std::cout << "Równe :)\n"; else std::cout << "Nierówne :(\n"; } Overwriting reprezentacja2.cpp In [44]:!g++ reprezentacja2.cpp -o rep2 In [45]:!./rep2 Nierówne :( 1000, 2 Kolejny przykład również związany jest z niedokładną reprezentacją, tym razem liczby : In [52]: %%writefile reprezentacja3.cpp #include <iostream> int main() { float y=1000.2; float x=y ; std::cout << x <<"\n"; } Overwriting reprezentacja3.cpp In [53]:!g++ reprezentacja3.cpp -o rep3 In [54]:!./rep Sprawdźmy, czy podobne efekty można zaobserwować w Pythonie:

15 In [55]: x = 0.01 In [57]: 100*x == 1.0 Out[57]: True In [58]: x= ; y=7.0 y1 = 1.0/y; z= x/y z1 = x*y1 In [59]: z1 == z Out[59]: True In [60]: y = x = y In [61]: print(x) Na pierwszy rzut oka Python wydaje się lepszy, ponieważ tylko w jednym z trzech przykładów obserwujemy problem związany z reprezentacją zmiennopozycyjną. Należy jednak zwrócić uwagę, że Python używa liczb zmiennopozycyjnych o podwójnej precyzji. Natomiast w powyższych przykładach w C++użyty został tym floato pojedynczej precyzji. Przepisanie tych kodów na typ double, równoważny temu w Pythonie, prowadzi do następujących wyników: In [62]: %%writefile reprezentacjab.cpp #include <iostream> int main() { double x=0.01; if(100.0*x==1.0) std::cout << "Równe :)\n"; else std::cout << "Nierówne :(\n"; } Writing reprezentacjab.cpp

16 In [63]:!g++ reprezentacjab.cpp -o repb In [64]:!./repb Równe :) In [65]: %%writefile reprezentacja2b.cpp #include <iostream> int main() { double x= , y=7.0; double y1 = 1.0/y; double z= x/y; double z1 = x*y1; if(z==z1) std::cout << "Równe :)\n"; else std::cout << "Nierówne :(\n"; } Writing reprezentacja2b.cpp In [66]:!g++ reprezentacja2b.cpp -o rep2b In [67]:!./rep2b Równe :) In [71]: %%writefile reprezentacja3b.cpp #include <iostream> int main() { double y=1000.2; double x=y ; std::cout.precision(15); std::cout << x <<"\n"; } Overwriting reprezentacja3b.cpp In [72]:!g++ reprezentacja3b.cpp -o rep3b

17 In [73]:!./rep3b Jak widać, po przejściu na podwójną precyzję w C++część problemów zniknęła. Otrzymaliśmy wyniki takie same, jak te w przykładach w Pythonie. Oczywiście, również w podwójnej precyzji możemy obserwować podobne błędy: In [76]: x = In [77]: x == 0.3 Out[77]: False In [78]: print(x) Jak widać w powyższych przykładach, bezpośrednie porównywanie liczb zmiennopozycyjnych na komputerze nie zawsze daje oczekiwany wynik. Dlatego w praktyce bardzo często traktować dwie liczby jako równe, jeżeli moduł ich różnicy jest mniejszy od małej, z góry zadanej wartości: In [79]: eps = 1.0e-6 x = y = 0.3 In [80]: x == y Out[80]: False In [81]: abs(x-y) < eps Out[81]: True

18 Uzyskaliśmy pożądany wynik, jednak ta metoda generuje kilka nowych problemów: ϵ określenie odpowiedniego nie zawsze jest sprawą oczywistą relacja zdefiniowana poprzez a b a b < ϵ nie jest relacją równoważności! Jeżeli w programie wykonujemy wiele porównań, wówczas wybieramy wartość ϵ tak, aby określała ona maksymalny błąd względny, jaki gotowi jesteśmy popełnić przy porównaniu, a następnie porównywać moduł różnicy nie z samym, a raczej z iloczynem i modułu jednej z porównywanych liczb: ϵ ϵ In [82]: eps = 1.0e-6 x = y = 0.3 In [83]: abs(x-y) < eps*abs(y) Out[83]: True

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

Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci: Reprezentacja liczb rzeczywistych w komputerze. Liczby rzeczywiste są reprezentowane w komputerze przez liczby zmiennopozycyjne. Liczbę k można przedstawid w postaci: k = m * 2 c gdzie: m częśd ułamkowa,

Bardziej szczegółowo

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

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

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

Wstęp do programowania. Reprezentacje liczb. Liczby naturalne, całkowite i rzeczywiste w układzie binarnym Wstęp do programowania Reprezentacje liczb Liczby naturalne, całkowite i rzeczywiste w układzie binarnym System dwójkowy W komputerach stosuje się dwójkowy system pozycyjny do reprezentowania zarówno liczb

Bardziej szczegółowo

Liczby zmiennoprzecinkowe i błędy

Liczby zmiennoprzecinkowe i błędy i błędy Elementy metod numerycznych i błędy Kontakt pokój B3-10 tel.: 829 53 62 http://golinski.faculty.wmi.amu.edu.pl/ golinski@amu.edu.pl i błędy Plan wykładu 1 i błędy Plan wykładu 1 2 i błędy Plan

Bardziej szczegółowo

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

Kod IEEE754. IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci Kod IEEE754 IEEE Institute of Electrical and Electronics Engineers IEEE754 (1985) - norma dotycząca zapisu binarnego liczb zmiennopozycyjnych (pojedynczej precyzji) Liczbę binarną o postaci (-1) s 1.f

Bardziej szczegółowo

Podstawy Informatyki

Podstawy Informatyki Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 5 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 5 1 / 23 LICZBY RZECZYWISTE - Algorytm Hornera

Bardziej szczegółowo

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

Systemy liczbowe. 1. Przedstawić w postaci sumy wag poszczególnych cyfr liczbę rzeczywistą R = (10). Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 1. Systemy liczbowe Cel dydaktyczny: Poznanie zasad reprezentacji liczb w systemach pozycyjnych o różnych podstawach. Kodowanie liczb dziesiętnych

Bardziej szczegółowo

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

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 5 Liczby w komputerze Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 5 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie

Bardziej szczegółowo

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

Wielkości liczbowe. Wykład z Podstaw Informatyki dla I roku BO. Piotr Mika Wielkości liczbowe Wykład z Podstaw Informatyki dla I roku BO Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje 0 oraz liczby naturalne

Bardziej szczegółowo

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p.

Metody numeryczne. Janusz Szwabiński. nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/ :02 p. Metody numeryczne Janusz Szwabiński szwabin@ift.uni.wroc.pl nm_slides.tex Metody numeryczne Janusz Szwabiński 2/10/2002 23:02 p.1/63 Plan wykładu 1. Dokładność w obliczeniach numerycznych 2. Złożoność

Bardziej szczegółowo

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61

Metody numeryczne I. Janusz Szwabiński. Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61 Metody numeryczne I Dokładność obliczeń numerycznych. Złożoność obliczeniowa algorytmów Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/61 ... the purpose of

Bardziej szczegółowo

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

Wielkości liczbowe. Wykład z Podstaw Informatyki. Piotr Mika Wielkości liczbowe Wykład z Podstaw Informatyki Piotr Mika Wprowadzenie, liczby naturalne Komputer to podstawowe narzędzie do wykonywania obliczeń Jeden bajt reprezentuje oraz liczby naturalne od do 255

Bardziej szczegółowo

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

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Programowanie w C++ Wykład 2 Katarzyna Grzelak 4 marca 2019 K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44 Na poprzednim wykładzie podstawy C++ Każdy program w C++ musi mieć funkcję o nazwie main Wcięcia

Bardziej szczegółowo

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

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

Bardziej szczegółowo

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

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 Metody numeryczne Wykład 2 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Arytmetyka zmiennopozycyjna

Bardziej szczegółowo

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej :

Zwykle liczby rzeczywiste przedstawia się w notacji naukowej : Arytmetyka zmiennoprzecinkowa a procesory cyfrowe Prawa algebry stosują się wyłącznie do arytmetyki o nieograniczonej precyzji x=x+1 dla x będącego liczbą całkowitą jest zgodne z algebrą, dopóki nie przekroczymy

Bardziej szczegółowo

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

Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Przedmiot: Urządzenia techniki komputerowej Nauczyciel: Mirosław Ruciński Temat: Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy.

Bardziej szczegółowo

Zestaw 3. - Zapis liczb binarnych ze znakiem 1

Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zestaw 3. - Zapis liczb binarnych ze znakiem 1 Zapis znak - moduł (ZM) Zapis liczb w systemie Znak - moduł Znak liczby o n bitach zależy od najstarszego bitu b n 1 (tzn. cyfry o najwyższej pozycji): b

Bardziej szczegółowo

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

Podstawy Informatyki. Metalurgia, I rok. Wykład 3 Liczby w komputerze Podstawy Informatyki Metalurgia, I rok Wykład 3 Liczby w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 1948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych

Bardziej szczegółowo

Pracownia Komputerowa wykład VI

Pracownia Komputerowa wykład VI Pracownia Komputerowa wykład VI dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada 1 Przypomnienie 125 (10) =? (2) Liczby całkowite : Operacja modulo % reszta z dzielenia: 125%2=62 reszta 1

Bardziej szczegółowo

Zapis liczb binarnych ze znakiem

Zapis liczb binarnych ze znakiem Zapis liczb binarnych ze znakiem W tej prezentacji: Zapis Znak-Moduł (ZM) Zapis uzupełnień do 1 (U1) Zapis uzupełnień do 2 (U2) Zapis Znak-Moduł (ZM) Koncepcyjnie zapis znak - moduł (w skrócie ZM - ang.

Bardziej szczegółowo

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej

Reprezentacja stałoprzecinkowa. Reprezentacja zmiennoprzecinkowa zapis zmiennoprzecinkowy liczby rzeczywistej Informatyka, studia niestacjonarne I stopnia Rok akademicki /, Wykład nr 4 /6 Plan wykładu nr 4 Informatyka Politechnika Białostocka - Wydział lektryczny lektrotechnika, semestr II, studia niestacjonarne

Bardziej szczegółowo

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,

Bardziej szczegółowo

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

Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów. Architektura komputerów Reprezentacja liczb. Kodowanie rozkazów. Prezentacja jest współfinansowana przez Unię Europejską w ramach Europejskiego Funduszu Społecznego w projekcie pt. Innowacyjna dydaktyka

Bardziej szczegółowo

Python wstęp do programowania dla użytkowników WCSS

Python wstęp do programowania dla użytkowników WCSS Python wstęp do programowania dla użytkowników WCSS Dr inż. Krzysztof Berezowski Instytut Informatyki, Automatyki i Robotyki Politechniki Wrocławskiej Wprowadzenie CHARAKTERYSTYKA JĘZYKA Filozofia języka

Bardziej szczegółowo

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

Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne Wprowadzenie do architektury komputerów systemy liczbowe, operacje arytmetyczne i logiczne 1. Bit Pozycja rejestru lub komórki pamięci służąca do przedstawiania (pamiętania) cyfry w systemie (liczbowym)

Bardziej szczegółowo

Teoretyczne Podstawy Informatyki

Teoretyczne Podstawy Informatyki Teoretyczne Podstawy Informatyki cel zajęć Celem kształcenia jest uzyskanie umiejętności i kompetencji w zakresie budowy schematów blokowych algor ytmów oraz ocenę ich złożoności obliczeniowej w celu optymizacji

Bardziej szczegółowo

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

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia. ARYTMETYKA BINARNA ROZWINIĘCIE DWÓJKOWE Jednym z najlepiej znanych sposobów kodowania informacji zawartej w liczbach jest kodowanie w dziesiątkowym systemie pozycyjnym, w którym dla przedstawienia liczb

Bardziej szczegółowo

Pułapki liczb zmiennoprzecinkowych. Adam Sawicki asawicki.info

Pułapki liczb zmiennoprzecinkowych. Adam Sawicki asawicki.info Pułapki liczb zmiennoprzecinkowych Adam Sawicki asawicki.info 24.09.2016 Agenda Liczby zmiennoprzecinkowe Budowa Typy możliwości i ograniczenia Typy w językach programowania Pułapki Zakres Precyzja Nieskooczone

Bardziej szczegółowo

Kod U2 Opracował: Andrzej Nowak

Kod U2 Opracował: Andrzej Nowak PODSTAWY TEORII UKŁADÓW CYFROWYCH Kod U2 Opracował: Andrzej Nowak Bibliografia: Urządzenia techniki komputerowej, K. Wojtuszkiewicz http://pl.wikipedia.org/ System zapisu liczb ze znakiem opisany w poprzednim

Bardziej szczegółowo

Wprowadzenie do metod numerycznych. Krzysztof Patan

Wprowadzenie do metod numerycznych. Krzysztof Patan Wprowadzenie do metod numerycznych Krzysztof Patan Metody numeryczne Dział matematyki stosowanej Każde bardziej złożone zadanie wymaga opracowania indywidualnej metody jego rozwiązywania na maszynie cyfrowej

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Wykład jest przygotowany dla IV semestru kierunku Elektronika i Telekomunikacja. Studia I stopnia Dr inż. Małgorzata Langer Architektura komputerów Prezentacja multimedialna współfinansowana przez Unię

Bardziej szczegółowo

Systemy zapisu liczb.

Systemy zapisu liczb. Systemy zapisu liczb. Cele kształcenia: Zapoznanie z systemami zapisu liczb: dziesiętny, dwójkowy, ósemkowy, szesnastkowy. Zdobycie umiejętności wykonywania działań na liczbach w różnych systemach. Zagadnienia:

Bardziej szczegółowo

Pracownia Komputerowa wyk ad VI

Pracownia Komputerowa wyk ad VI Pracownia Komputerowa wyk ad VI dr Magdalena Posiada a-zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Przypomnienie 125 (10) =? (2) Liczby ca kowite

Bardziej szczegółowo

LICZBY ZMIENNOPRZECINKOWE

LICZBY ZMIENNOPRZECINKOWE LICZBY ZMIENNOPRZECINKOWE Liczby zmiennoprzecinkowe są komputerową reprezentacją liczb rzeczywistych zapisanych w formie wykładniczej (naukowej). Aby uprościć arytmetykę na nich, przyjęto ograniczenia

Bardziej szczegółowo

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

SYSTEMY LICZBOWE. SYSTEMY POZYCYJNE: dziesiętny (arabski): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M SYSTEMY LICZBOWE SYSTEMY POZYCYJNE: dziesiętny (arabski):,, 2, 3, 4, 5, 6, 7, 8, 9 rzymski: I, II, III, V, C, M System pozycyjno wagowy: na przykład liczba 444 4 4 4 4 4 4 Wagi systemu dziesiętnego:,,,,...

Bardziej szczegółowo

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe

ARCHITEKTURA KOMPUTERÓW Liczby zmiennoprzecinkowe ARCHITEKTURA KOMPUTERÓW 17.11.2010 Liczby zmiennoprzecinkowe Sprawa bardzo podobna jak w systemie dziesiętnym po przecinku mamy kolejno 10-tki do ujemnych potęg, a w systemie binarnym mamy 2-ki w ujemnych

Bardziej szczegółowo

Technologie Informacyjne

Technologie Informacyjne System binarny Szkoła Główna Służby Pożarniczej Zakład Informatyki i Łączności October 7, 26 Pojęcie bitu 2 Systemy liczbowe 3 Potęgi dwójki 4 System szesnastkowy 5 Kodowanie informacji 6 Liczby ujemne

Bardziej szczegółowo

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

Typ użyty w deklaracji zmiennej decyduje o rodzaju informacji, a nazwa zmiennej symbolicznie opisuje wartość. Typy danych Aby zapisać w komputerze jakąś daną, trzeba zapamiętać trzy jej podstawowe cechy: miejsce przechowywania informacji, przechowywaną wartość, rodzaj przechowywanej wartości. Typ użyty w deklaracji

Bardziej szczegółowo

Dokładność obliczeń numerycznych

Dokładność obliczeń numerycznych Dokładność obliczeń numerycznych Zbigniew Koza Wydział Fizyki i Astronomii Wrocław, 2016 MOTYWACJA Komputer czasami produkuje nieoczekiwane wyniki >> 10*(1-0.9)-1 # powinno być 0 ans = -2.2204e-016 >>

Bardziej szczegółowo

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych

Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1 Podstawowe operacje arytmetyczne i logiczne dla liczb binarnych 1. Podstawowe operacje logiczne dla cyfr binarnych Jeśli cyfry 0 i 1 potraktujemy tak, jak wartości logiczne fałsz i prawda, to działanie

Bardziej szczegółowo

BŁĘDY OBLICZEŃ NUMERYCZNYCH

BŁĘDY OBLICZEŃ NUMERYCZNYCH BŁĘDY OBLICZEŃ NUMERYCZNYCH błędy zaokrągleń skończona liczba cyfr (bitów) w reprezentacji numerycznej błędy obcięcia rozwinięcia w szeregi i procesy iteracyjne - w praktyce muszą być skończone błędy metody

Bardziej szczegółowo

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy 1 Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1

Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1 Reprezentacja symboli w komputerze. Liczby całkowite i zmiennoprzecinkowe. Programowanie Proceduralne 1 Bity i kody binarne Bit (binary digit) najmniejsza ilość informacji {0, 1}, wysokie/niskie napięcie

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

2018 Marcin Kukliński. Niesforne bity i bajty

2018 Marcin Kukliński. Niesforne bity i bajty Niesforne bity i bajty 2 Kilka słów O mnie @ senghe@gmail.com https://www.linkedin.com/in/marcin-kukliński 3 2017 InspiraSign - Template All rights reserved Ekipa cpp-polska 5 Marcin Kukliński Wojciech

Bardziej szczegółowo

Podstawy Programowania Podstawowa składnia języka C++

Podstawy Programowania Podstawowa składnia języka C++ Podstawy Programowania Podstawowa składnia języka C++ Katedra Analizy Nieliniowej, WMiI UŁ Łódź, 3 października 2013 r. Szablon programu w C++ Najprostszy program w C++ ma postać: #include #include

Bardziej szczegółowo

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym

SYSTEMY LICZBOWE. Zapis w systemie dziesiętnym SYSTEMY LICZBOWE 1. Systemy liczbowe Najpopularniejszym systemem liczenia jest system dziesiętny, który doskonale sprawdza się w życiu codziennym. Jednak jego praktyczna realizacja w elektronice cyfrowej

Bardziej szczegółowo

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010

ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 ARCHITEKRURA KOMPUTERÓW Kodowanie liczb ze znakiem 27.10.2010 Do zapisu liczby ze znakiem mamy tylko 8 bitów, pierwszy od lewej bit to bit znakowy, a pozostałem 7 to bity na liczbę. bit znakowy 1 0 1 1

Bardziej szczegółowo

Pracownia komputerowa. Dariusz Wardecki, wyk. VI

Pracownia komputerowa. Dariusz Wardecki, wyk. VI Pracownia komputerowa Dariusz Wardecki, wyk. VI Powtórzenie Ile wynoszą poniższe liczby w systemie dwójkowym/ dziesiętnym? 1001101 =? 77! 63 =? 111111! Arytmetyka w reprezentacji bezznakowej Mnożenie liczb

Bardziej szczegółowo

Pracownia Komputerowa wykład V

Pracownia Komputerowa wykład V Pracownia Komputerowa wykład V dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny system

Bardziej szczegółowo

Arytmetyka binarna - wykład 6

Arytmetyka binarna - wykład 6 SWB - Arytmetyka binarna - wykład 6 asz 1 Arytmetyka binarna - wykład 6 Adam Szmigielski aszmigie@pjwstk.edu.pl SWB - Arytmetyka binarna - wykład 6 asz 2 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2

Bardziej szczegółowo

Adam Korzeniewski p Katedra Systemów Multimedialnych

Adam Korzeniewski p Katedra Systemów Multimedialnych Adam Korzeniewski adamkorz@sound.eti.pg.gda.pl p. 732 - Katedra Systemów Multimedialnych Sygnały dyskretne są z reguły przetwarzane w komputerach (zwykłych lub wyspecjalizowanych, takich jak procesory

Bardziej szczegółowo

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

Samodzielnie wykonaj następujące operacje: 13 / 2 = 30 / 5 = 73 / 15 = 15 / 23 = 13 % 2 = 30 % 5 = 73 % 15 = 15 % 23 = Systemy liczbowe Dla każdej liczby naturalnej x Î N oraz liczby naturalnej p >= 2 istnieją jednoznacznie wyznaczone: liczba n Î N oraz ciąg cyfr c 0, c 1,..., c n-1 (gdzie ck Î {0, 1,..., p - 1}) taki,

Bardziej szczegółowo

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

Obliczenia Naukowe. O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć. Bartek Wilczyński 29. Obliczenia Naukowe O arytmetyce komputerów, Czyli jak nie dać się zaskoczyć Bartek Wilczyński bartek@mimuw.edu.pl 29. lutego 2016 Plan semestru Arytmetyka komputerów, wektory, macierze i operacje na nich

Bardziej szczegółowo

Architektura komputerów

Architektura komputerów Architektura komputerów Wykład 4 Jan Kazimirski 1 Reprezentacja danych 2 Plan wykładu Systemy liczbowe Zapis dwójkowy liczb całkowitych Działania arytmetyczne Liczby rzeczywiste Znaki i łańcuchy znaków

Bardziej szczegółowo

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 2 WSTĘP DO INFORMATYKI Ćwiczenia i laboratorium 2 Kolokwia zaliczeniowe - 1 termin - poniedziałek, 29 stycznia 2018 11:30

Bardziej szczegółowo

C++ wprowadzanie zmiennych

C++ wprowadzanie zmiennych C++ wprowadzanie zmiennych Każda zmienna musi być zadeklarowana, należy określić jej nazwę (identyfikator) oraz typ. Opis_typu lista zmiennych Dla każdej zmiennej rezerwowany jest fragment pamięci o określonym

Bardziej szczegółowo

Podstawy Informatyki

Podstawy Informatyki Podstawy Informatyki Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 3 Bożena Woźna-Szcześniak (AJD) Podstawy Informatyki Wykład 3 1 / 42 Reprezentacja liczb całkowitych

Bardziej szczegółowo

SYSTEMY LICZBOWE 275,538 =

SYSTEMY LICZBOWE 275,538 = SYSTEMY LICZBOWE 1. Systemy liczbowe Najpopularniejszym systemem liczenia jest system dziesiętny, który doskonale sprawdza się w życiu codziennym. Jednak jego praktyczna realizacja w elektronice cyfrowej

Bardziej szczegółowo

Arytmetyka stało i zmiennoprzecinkowa

Arytmetyka stało i zmiennoprzecinkowa Arytmetyka stało i zmiennoprzecinkowa Michał Rudowicz 171047 Łukasz Sidorkiewicz 170991 Piotr Lemański 171009 Wydział Elektroniki Politechnika Wrocławska 26 października 2011 Spis Treści 1 Reprezentacja

Bardziej szczegółowo

Technologie Informacyjne Wykład 4

Technologie Informacyjne Wykład 4 Technologie Informacyjne Wykład 4 Arytmetyka komputerów Wojciech Myszka Jakub Słowiński Katedra Mechaniki i Inżynierii Materiałowej Wydział Mechaniczny Politechnika Wrocławska 30 października 2014 Część

Bardziej szczegółowo

Wstęp do informatyki- wykład 2

Wstęp do informatyki- wykład 2 MATEMATYKA 1 Wstęp do informatyki- wykład 2 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy

Bardziej szczegółowo

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

Wstęp do informatyki- wykład 1 Systemy liczbowe 1 Wstęp do informatyki- wykład 1 Systemy liczbowe Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012 www.cplusplus.com Jerzy Grębosz,

Bardziej szczegółowo

Kodowanie liczb całkowitych w systemach komputerowych

Kodowanie liczb całkowitych w systemach komputerowych Kodowanie liczb całkowitych w systemach komputerowych System pozycyjny Systemy addytywne znaczenie historyczne Systemy pozycyjne r podstawa systemu liczbowego (radix) A wartość liczby a - cyfra i pozycja

Bardziej szczegółowo

Pracownia Komputerowa wykład IV

Pracownia Komputerowa wykład IV Pracownia Komputerowa wykład IV dr Magdalena Posiadała-Zezula http://www.fuw.edu.pl/~mposiada/pk16 1 Reprezentacje liczb i znaków! Liczby:! Reprezentacja naturalna nieujemne liczby całkowite naturalny

Bardziej szczegółowo

2 Przygotował: mgr inż. Maciej Lasota

2 Przygotował: mgr inż. Maciej Lasota Laboratorium nr 2 1/7 Język C Instrukcja laboratoryjna Temat: Wprowadzenie do języka C 2 Przygotował: mgr inż. Maciej Lasota 1) Wprowadzenie do języka C. Język C jest językiem programowania ogólnego zastosowania

Bardziej szczegółowo

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

Programowanie C++ Wykład 2 - podstawy języka C++ dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki Wykład 2 - podstawy języka C++ Instytut Automatyki i Robotyki Warszawa, 2014 Wstęp Plan wykładu Struktura programu. Zmienne i ich nazwy, podstawowe typy: całkowite, rzeczywiste, znakowe i napisowe. Instrukcje:

Bardziej szczegółowo

Arytmetyka liczb binarnych

Arytmetyka liczb binarnych Wartość dwójkowej liczby stałoprzecinkowej Wartość dziesiętna stałoprzecinkowej liczby binarnej Arytmetyka liczb binarnych b n-1...b 1 b 0,b -1 b -2...b -m = b n-1 2 n-1 +... + b 1 2 1 + b 0 2 0 + b -1

Bardziej szczegółowo

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

LABORATORIUM PROCESORY SYGNAŁOWE W AUTOMATYCE PRZEMYSŁOWEJ. Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q LABORAORIUM PROCESORY SYGAŁOWE W AUOMAYCE PRZEMYSŁOWEJ Zasady arytmetyki stałoprzecinkowej oraz operacji arytmetycznych w formatach Q 1. Zasady arytmetyki stałoprzecinkowej. Kody stałopozycyjne mają ustalone

Bardziej szczegółowo

1.1. Pozycyjne systemy liczbowe

1.1. Pozycyjne systemy liczbowe 1.1. Pozycyjne systemy liczbowe Systemami liczenia nazywa się sposób tworzenia liczb ze znaków cyfrowych oraz zbiór reguł umożliwiających wykonywanie operacji arytmetycznych na liczbach. Dla dowolnego

Bardziej szczegółowo

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++

Podstawy Informatyki. Inżynieria Ciepła, I rok. Wykład 10 Kurs C++ Podstawy Informatyki Inżynieria Ciepła, I rok Wykład 10 Kurs C++ Historia Lata 70-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard

Bardziej szczegółowo

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++ Programowanie Wstęp p do programowania Klasa 3 Lekcja 9 PASCAL & C++ Język programowania Do przedstawiania algorytmów w postaci programów służą języki programowania. Tylko algorytm zapisany w postaci programu

Bardziej szczegółowo

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)?

METODY NUMERYCZNE. Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)? METODY NUMERYCZNE Wykład 2. Analiza błędów w metodach numerycznych Met.Numer. wykład 2 1 Po co wprowadzamy liczby w formacie zmiennoprzecinkowym (floating point)? Przykład 1. W jaki sposób można zapisać

Bardziej szczegółowo

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE

DYDAKTYKA ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE ZAGADNIENIA CYFROWE @KEMOR SPIS TREŚCI. SYSTEMY LICZBOWE...3.. SYSTEM DZIESIĘTNY...3.2. SYSTEM DWÓJKOWY...3.3. SYSTEM SZESNASTKOWY...4 2. PODSTAWOWE OPERACJE NA LICZBACH BINARNYCH...5

Bardziej szczegółowo

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

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI Arytmetyka komputera Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka Opracował: Kamil Kowalski klasa III TI Spis treści 1. Jednostki informacyjne 2. Systemy liczbowe 2.1. System

Bardziej szczegółowo

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

Dane, informacja, programy. Kodowanie danych, kompresja stratna i bezstratna Dane, informacja, programy Kodowanie danych, kompresja stratna i bezstratna DANE Uporządkowane, zorganizowane fakty. Główne grupy danych: tekstowe (znaki alfanumeryczne, znaki specjalne) graficzne (ilustracje,

Bardziej szczegółowo

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

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory Poniżej pozwoliłem sobie za cytować za wikipedią definicję zmiennej w informatyce.

Bardziej szczegółowo

Metody numeryczne II. Reprezentacja liczb

Metody numeryczne II. Reprezentacja liczb Metody numeryczne II. Reprezentacja liczb Oleksandr Sokolov Wydział Fizyki, Astronomii i Informatyki Stosowanej UMK (2016/17) http://fizyka.umk.pl/~osokolov/mnii/ Reprezentacja liczb Reprezentacja stałopozycyjna

Bardziej szczegółowo

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE

1 P roste e t ypy p d a d n a ych c - c ąg ą g d a d l a szy 2 T y T py p z ł z o ł żo ż ne e d a d n a ych c : T BLICE 1. Proste typy danych- ciąg dalszy 2. Typy złożone danych : TABLICE Wykład 3 ZMIENNE PROSTE: TYPY WBUDOWANE Typy zmiennoprzecinkowe: float double long double Różne rozmiary bajtowe. W konsekwencji różne

Bardziej szczegółowo

Dodatek do Wykładu 01: Kodowanie liczb w komputerze

Dodatek do Wykładu 01: Kodowanie liczb w komputerze Dodatek do Wykładu 01: Kodowanie liczb w komputerze [materiał ze strony: http://sigma.wsb-nlu.edu.pl/~szyszkin/] Wszelkie dane zapamiętywane przetwarzane przez komputery muszą być odpowiednio zakodowane.

Bardziej szczegółowo

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10.

Podstawą w systemie dwójkowym jest liczba 2 a w systemie dziesiętnym liczba 10. ZAMIANA LICZB MIĘDZY SYSTEMAMI DWÓJKOWYM I DZIESIĘTNYM Aby zamienić liczbę z systemu dwójkowego (binarnego) na dziesiętny (decymalny) należy najpierw przypomnieć sobie jak są tworzone liczby w ww systemach

Bardziej szczegółowo

Pozycyjny system liczbowy

Pozycyjny system liczbowy Arytmetyka binarna Pozycyjny system liczbowy w pozycyjnych systemach liczbowych wkład danego symbolu do wartości liczby jest określony zarówno przez sam symbol, jak i jego pozycję w liczbie i tak np. w

Bardziej szczegółowo

Naturalny kod binarny (NKB)

Naturalny kod binarny (NKB) SWB - Arytmetyka binarna - wykład 6 asz 1 Naturalny kod binarny (NKB) pozycja 7 6 5 4 3 2 1 0 wartość 2 7 2 6 2 5 2 4 2 3 2 2 2 1 2 0 wartość 128 64 32 16 8 4 2 1 bity b 7 b 6 b 5 b 4 b 3 b 2 b 1 b 0 System

Bardziej szczegółowo

ALGORYTMY I STRUKTURY DANYCH

ALGORYTMY I STRUKTURY DANYCH KATEDRASYSTEMÓWOBLICZENIOWYCH ALGORYTMY I STRUKTURY DANYCH 1.Rekurencja Rekurencja inaczej rekursja (ang. recursion) to wywołanie z poziomu metody jej samej. Programowanie z wykorzytaniem rekurencji pozwala

Bardziej szczegółowo

Arytmetyka liczb wymiernych w języku C++

Arytmetyka liczb wymiernych w języku C++ Arytmetyka liczb wymiernych w języku C++ Monika Zagała Wydział Inżynierii Mechanicznej i Informatyki Kierunek Informatyka, Rok V m_zagala@o2.pl Streszczenie Poniższa praca przedstawia projekt oraz implementację

Bardziej szczegółowo

5. Rekurencja. Przykłady

5. Rekurencja. Przykłady 5. Rekurencja Uwaga! W tym rozdziale nie są omówione żadne nowe konstrukcje języka C++. Omówiona jest za to technika wykorzystująca funkcje, która pozwala na rozwiązanie pewnych nowych rodzajów zadań.

Bardziej szczegółowo

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Reprezentacja

Bardziej szczegółowo

W jaki sposób użyć tych n bitów do reprezentacji liczb całkowitych

W jaki sposób użyć tych n bitów do reprezentacji liczb całkowitych Arytmetyka komputerowa Wszelkie liczby zapisuje się przy użyciu bitów czyli cyfr binarnych: 0 i 1 Ile różnych liczb można zapisać używajac n bitów? n liczby n-bitowe ile ich jest? 1 0 1 00 01 10 11 3 000001010011100101110111

Bardziej szczegółowo

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

System liczbowy jest zbiorem reguł określających jednolity sposób zapisu i nazewnictwa liczb. 2. Arytmetyka komputera. Systemy zapisu liczb: dziesietny, dwójkowy (binarny), ósemkowy, szesnatskowy. Podstawowe operacje arytmetyczne na liczbach binarnych. Zapis liczby binarnej ze znakiem. Reprezentacja

Bardziej szczegółowo

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Instrukcja selekcji if-else

Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Instrukcja selekcji if-else 1 Wstęp do informatyki- wykład 4 Deklaracja zmiennych Typy Instrukcja selekcji if-else Treści prezentowane w wykładzie zostały oparte o: S. Prata, Język C++. Szkoła programowania. Wydanie VI, Helion, 2012

Bardziej szczegółowo

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana)

Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Wstęp do Informatyki i Programowania (kierunek matematyka stosowana) Jacek Cichoń Przemysław Kobylański Instytut Matematyki i Informatyki Politechnika Wrocławska Na podstawie: M.Summerfield.Python 3. Kompletne

Bardziej szczegółowo

3.3.1. Metoda znak-moduł (ZM)

3.3.1. Metoda znak-moduł (ZM) 3.3. Zapis liczb binarnych ze znakiem 1 0-1 0 1 : 1 0 0 1 1 0 1 1 0 1 0 0 0 0 1 0 0 0 1 reszta 0 0 0 0 0 0 0 1 3.3. Zapis liczb binarnych ze znakiem W systemie dziesiętnym liczby ujemne opatrzone są specjalnym

Bardziej szczegółowo

EMN. dr Wojtek Palubicki

EMN. dr Wojtek Palubicki EMN dr Wojtek Palubicki Zadanie 1 Wyznacz wszystkie dodatnie liczby zmiennopozycyjne (w systemie binarnym) dla znormalizowanej mantysy 3-bitowej z przedziału [0.5, 1.0] oraz cechy z zakresu 1 c 3. Rounding

Bardziej szczegółowo

Kodowanie informacji. Kody liczbowe

Kodowanie informacji. Kody liczbowe Wykład 2 2-1 Kodowanie informacji PoniewaŜ komputer jest urządzeniem zbudowanym z układów cyfrowych, informacja przetwarzana przez niego musi być reprezentowana przy pomocy dwóch stanów - wysokiego i niskiego,

Bardziej szczegółowo

Informatyka 1. Wykład nr 5 (13.04.2008) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc

Informatyka 1. Wykład nr 5 (13.04.2008) Politechnika Białostocka. - Wydział Elektryczny. dr inŝ. Jarosław Forenc Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia (zaoczne) Rok akademicki 2007/2008 Wykład nr 5 (3.04.2008) Rok akademicki 2007/2008,

Bardziej szczegółowo

Wprowadzenie do informatyki - ć wiczenia

Wprowadzenie do informatyki - ć wiczenia Stałoprzecinkowy zapis liczb wymiernych dr inż. Izabela Szczęch WSNHiD Ćwiczenia z wprowadzenia do informatyki Reprezentacja liczb wymiernych Stałoprzecinkowa bez znaku ze znakiem Zmiennoprzecinkowa pojedynczej

Bardziej szczegółowo

Arytmetyka stałopozycyjna

Arytmetyka stałopozycyjna Wprowadzenie do inżynierii przetwarzania informacji. Ćwiczenie 3. Arytmetyka stałopozycyjna Cel dydaktyczny: Nabycie umiejętności wykonywania podstawowych operacji arytmetycznych na liczbach stałopozycyjnych.

Bardziej szczegółowo

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

Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Kod uzupełnień do dwóch jest najczęściej stosowanym systemem zapisu liczb ujemnych wśród systemów binarnych. Jeśli bit znaku przyjmie wartość 0 to liczba jest dodatnia lub posiada wartość 0. Jeśli bit

Bardziej szczegółowo

Programowanie strukturalne i obiektowe. Funkcje

Programowanie strukturalne i obiektowe. Funkcje Funkcje Często w programach spotykamy się z sytuacją, kiedy chcemy wykonać określoną czynność kilka razy np. dodać dwie liczby w trzech miejscach w programie. Oczywiście moglibyśmy to zrobić pisząc trzy

Bardziej szczegółowo