2018 Marcin Kukliński. Niesforne bity i bajty

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

Download "2018 Marcin Kukliński. Niesforne bity i bajty"

Transkrypt

1 Niesforne bity i bajty

2 2 Kilka słów O senghe@gmail.com

3 3

4 2017 InspiraSign - Template All rights reserved

5 Ekipa cpp-polska 5 Marcin Kukliński Wojciech Razik Michał Rudowicz Bartłomiej Filipek Kompilacja & Mario::Edit CppNews & Modern C++ Modern C++ C++17

6 Nasze statystyki 6

7 Nasze statystyki 7

8 Znajdziecie nas @CppPolska

9 Naszym celem jest: 9 Propagowanie wiedzy o nowoczesnym C++

10 Może do nas dołączysz? 10 Ty

11 11 Wracając do bitów

12 12 To jest bit 1

13 13 To też jest bit 0

14 14 1 A to jest bajt

15 15 Liczby całkowite

16 Kod uzupełnień do jedności (U1) 16

17 Kod uzupełnień do jedności (U1) 17 Kod uzupełnień do jedności to sposób zapisu liczb całkowitych oznaczany jako ZU1 lub U1. Liczby dodatnie zapisywane są jak w naturalnym kodzie binarnym, przy czym najbardziej znaczący bit traktowany jako bit znaku musi mieć wartość 0. Do reprezentowania liczb ujemnych wykorzystywana jest bitowa negacja danej liczby, co sprawia, że bit znaku ma wartość 1. Źródło:

18 Kod uzupełnień do jedności (U1)

19 Kod uzupełnień do jedności (U1)

20 Kod uzupełnień do jedności (U1)

21 Kod uzupełnień do jedności (U1)

22 Kod uzupełnień do jedności (U1) = 67

23 Kod uzupełnień do jedności (U1) =

24 Kod uzupełnień do jedności (U1) =

25 Kod uzupełnień do jedności (U1) =

26 Kod uzupełnień do jedności (U1) =

27 Kod uzupełnień do jedności (U1) =

28 Kod uzupełnień do jedności (U1) = = -67

29 29 Co z zerem?

30 U1 daje nam dwie wartości zerowe 30 Zero dodatnie: Zero ujemne:

31 Kod uzupełnień do dwóch (U2) 31

32 Kod uzupełnień do dwóch (U2) 32 Kod uzupełnień do dwóch (w skrócie U2 lub ZU2) system reprezentacji liczb całkowitych w dwójkowym systemie pozycyjnym. Jest obecnie najpopularniejszym sposobem zapisu liczb całkowitych w systemach cyfrowych. ( ) Zaletą tego kodu jest również istnienie tylko jednego zera. Przedział kodowanych liczb nie jest przez to symetryczny. Źródło:

33 Kod uzupełnień do dwóch (U2)

34 Kod uzupełnień do dwóch (U2)

35 Kod uzupełnień do dwóch (U2)

36 Kod uzupełnień do dwóch (U2)

37 Kod uzupełnień do dwóch (U2) = 67

38 Kod uzupełnień do dwóch (U2) =

39 Kod uzupełnień do dwóch (U2) =

40 Kod uzupełnień do dwóch (U2) =

41 Kod uzupełnień do dwóch (U2) =

42 Kod uzupełnień do dwóch (U2) =

43 Kod uzupełnień do dwóch (U2) = = -67 1

44 Kod uzupełnień do dwóch (U2) 44 unsigned char

45 Kod uzupełnień do dwóch (U2) 45 unsigned char signed char

46 46 Dlaczego to jest ważne?

47 Co mówi standard 47 The range of representable values for a signed integer type is 2 N 1 to 2 N 1 1 (inclusive), where N is called the range exponent of the type Źródło:

48 48 Integer Overflow

49 Integer Overflow 49 Wyrzucenie wyjątku INT_MAX + 10 = Exception

50 Integer Overflow 50 Przycięcie wyniku INT_MAX + 10 = 10

51 Integer Overflow 51 Saturacja INT_MAX + 10 = INT_MAX

52 Co mówi standard 52 For each of the standard signed integer types, there exists a corresponding (but different) standard unsigned integer type: unsigned char, unsigned short int, unsigned int, unsigned long int, and unsigned long long int. Likewise, for each of the extended signed integer types, there exists a corresponding extended unsigned integer type. The standard and extended unsigned integer types are collectively called unsigned integer types. An unsigned integer type has the same range exponent N as the corresponding signed integer type. The range of representable values for the unsigned type is 0 to 2 N 1 (inclusive); arithmetic for the unsigned type is performed modulo 2 N. [ Note: Unsigned arithmetic does not overflow. Overflow for signed arithmetic yields undefined behavior Źródło:

53 53 Integer Overflow to UB

54 Undefined Behavior 54 Nie mamy pewności, co zostanie wykonane przez procesor

55 Undefined Behavior 55 Nie mamy pewności, co zostanie wykonane przez procesor Kompilator zakłada, że niezdefiniowane zachowanie nigdy nie ma miejsca

56 Undefined Behavior 56 Nie mamy pewności, co zostanie wykonane przez procesor Kompilator zakłada, że niezdefiniowane zachowanie nigdy nie ma miejsca Cała odpowiedzialność zostaje zrzucona na programistę

57 57 UB vs Implementation Defined

58 Jak radzić sobie z Integer Overflow? 58 int add(int a, int b) { } int sum = a + b; if (a > 0 && b > 0) { if (sum < a) { throw E(); } if (sum < b) { } } return sum; throw E();

59 Jak radzić sobie z Integer Overflow? 59 int add(int a, int b) { int sum = a + b; if (a > 0 && b > 0) { // if (sum < a) { // throw E(); // } // if (sum < b) { // throw E(); // } } } return sum;

60 Jak radzić sobie z Integer Overflow? 60 unsigned add(unsigned a, unsigned b) { if (INT_MAX-a < b) { throw E(); } return a + b; }

61 Jak radzić sobie z Integer Overflow? 61 unsigned add(unsigned a, unsigned b) { if (INT_MAX-a < b) { throw E(); } return a + b; }

62 Jak radzić sobie z Integer Overflow? 62 int add(int a, int b) { } if (b > 0 && a > 0) { if (INT_MAX-a < b) { throw E(); } } else if (b < 0 && a < 0) { if (INT_MIN-a > b) { } throw E(); } return a + b;

63 Jak radzić sobie z Integer Overflow? 63 int add(int a, int b) { } if (b > 0 && a > 0) { if (INT_MAX-a < b) { throw E(); } } else if (b < 0 && a < 0) { if (INT_MIN-a > b) { } throw E(); } return a + b;

64 Jak radzić sobie z Integer Overflow? 64 int add(int a, int b) { } if (b > 0 && a > 0) { if (INT_MAX-a < b) { throw E(); } } else if (b < 0 && a < 0) { if (INT_MIN-a > b) { } throw E(); } return a + b;

65 Jak radzić sobie z Integer Overflow? 65 int add(int a, int b) { } if (b > 0 && a > 0) { if (INT_MAX-a < b) { throw E(); } } else if (b < 0 && a < 0) { if (INT_MIN-a > b) { } throw E(); } return a + b;

66 66 Ukryty Integer Overflow

67 Ukryty Integer Overflow 67 int main(int argc, char* argv[]) { uint64_t v = 0x * 2; std::cout << std::hex << v << std::endl; return 0; }?

68 Ukryty Integer Overflow 68 int main(int argc, char* argv[]) { uint64_t v = 0x * 2; std::cout << std::hex << v << std::endl; return 0; }

69 Ukryty Integer Overflow 69 int main(int argc, char* argv[]) { uint32_t v = 0x * 2; std::cout << std::hex << v << std::endl; return 0; }

70 Ukryty Integer Overflow 70 int main(int argc, char* argv[]) { uint64_t v = 0x * 2; std::cout << std::hex << v << std::endl; return 0; }

71 Ukryty Integer Overflow 71 int main(int argc, char* argv[]) { uint64_t v = 0x ULL * 2; std::cout << std::hex << v << std::endl; return 0; }

72 Ukryty Integer Overflow 72 int main(int argc, char* argv[]) { uint64_t v = 0x * 2ULL; std::cout << std::hex << v << std::endl; return 0; }

73 Ukryty Integer Overflow 73 int main(int argc, char* argv[]) { uint64_t v = 0x * 2ULL; std::cout << std::hex << v << std::endl; return 0; }

74 74 Czym jest promocja typu?

75 Czym jest promocja typu 75 Promocją typu nazywamy proces polegający na zwiększeniu ilości bajtów przechowujących konkretną wartość bez zmiany tej wartości.

76 Czym jest promocja typu 76 8 bit => 16 bit

77 Czym jest promocja typu 77 8 bit => 16 bit unsigned => unsigned =>

78 Czym jest promocja typu 78 8 bit => 16 bit unsigned => unsigned => signed => signed =>

79 79 Czym jest konwersja typu?

80 Czym jest konwersja typu? 80 Konwersją typu nazywamy proces polegający na zmianie kodowania przechowywanej wartości, niekoniecznie zmieniając przy tym samą wartość.

81 Czym jest konwersja typu? 81 int32_t 42 =>

82 Czym jest konwersja typu? 82 int32_t 42 => float 42.0f =>

83 Ukryty Integer Overflow 83 #include <iostream> int main(int argc, char* argv[]) { std::cout << abs(int_min) << std::endl; return 0; }?

84 Ukryty Integer Overflow 84 #include <iostream> int main(int argc, char* argv[]) { std::cout << abs(int_min) << std::endl; return 0; }

85 Zwykła implementacja 85 unsigned abs(int value) { if (value < 0) { return -value; } return value; }

86 Poprawna implementacja 86 unsigned safe_abs(int value) { if (value == INT_MIN) { throw E{}; } return abs(value); }

87 87 Big Integer

88 Big Integer 88 Każda cyfra przechowywana jest jako kolejny element tablicy (niekoniecznie w formie dziesiętnej)

89 Big Integer 89 Każda cyfra przechowywana jest jako kolejny element tablicy (niekoniecznie w formie dziesiętnej) Operacje na Big Integer-ach przypominają operacje pisemne stosowane w szkole podstawowej

90 Big Integer 90 Każda cyfra przechowywana jest jako kolejny element tablicy (niekoniecznie w formie dziesiętnej) Operacje na Big Integer-ach przypominają operacje pisemne stosowane w szkole podstawowej Biblioteka standardowa C++ nie posiada implementacji dla Big Integer

91 Big Integer 91 Każda cyfra przechowywana jest jako kolejny element tablicy (niekoniecznie w formie dziesiętnej) Operacje na Big Integer-ach przypominają operacje pisemne stosowane w szkole podstawowej Biblioteka standardowa C++ nie posiada implementacji dla Big Integer Biblioteka Boost posiada implementację Big Integer: boost/multiprecision/cpp_int

92 Big Integer 92 Zaleta: Ogarniamy duże liczby

93 Big Integer 93 Zaleta: Ogarniamy duże liczby Wada: Procesory natywnie nie wspierają Big Integer-ów

94 Big Integer 94 Zaleta: Ogarniamy duże liczby Wada: Procesory natywnie nie wspierają Big Integer-ów Wada: Im większa liczba, tym wolniej się liczy

95 95 Ułamki bitowe

96 Ułamki bitowe dec =?bin

97 Ułamki bitowe dec =?bin 14 / 2 = / 2 = / 2 = / 2 = 0 1

98 Ułamki bitowe dec = 1110.?bin

99 Ułamki bitowe dec = 1110.?bin * 2 = * 2 = * 2 = * 2 = * 2 = 0

100 Ułamki bitowe dec = bin

101 Ułamki bitowe dec = bin

102 Ułamki bitowe 102 Stosując ułamki bitowe, to my decydujemy o ich dokładności

103 Ułamki bitowe 103 Stosując ułamki bitowe, to my decydujemy o ich dokładności Na ułamkach bitowych można operować podobnie jak na liczbach całkowitych

104 Ułamki bitowe 104 Stosując ułamki bitowe, to my decydujemy o ich dokładności Na ułamkach bitowych można operować podobnie jak na liczbach całkowitych Biblioteka standardowa C++ nie posiada implementacji dla liczb stałoprzecinkowych

105 Ułamki bitowe 105 Stosując ułamki bitowe, to my decydujemy o ich dokładności Na ułamkach bitowych można operować podobnie jak na liczbach całkowitych Biblioteka standardowa C++ nie posiada implementacji dla liczb stałoprzecinkowych Przykładowa implementacja: fixed_point

106 106 Liczby zmiennoprzecinkowe

107 Ile razy zostanie wykonana pętla? 107 #include <iostream> int main() { float i=0.0f; do { std::cout << "Loop " << std::endl; i+=0.1f; } while (i!= 1.0f); }

108 Ile razy zostanie wykonana pętla? 108 #include <iostream> int main() { float i=0.0f; do { std::cout << "Loop " << std::endl; i+=0.1f; } while (i!= 1.0f); } Odpowiedź: to jest pętla nieskończona

109 109 Ale dlaczego?

110 Niedokładne liczby zmiennoprzecinkowe 110 #include <iostream> #include <iomanip> int main() { std::cout << std::setprecision(10) << 0.1f << std::endl; } Na wyjściu:

111 Co pojawi się na wyjściu? 111 #include <iostream> #include <iomanip> int main() { float amountofproduct = f; unsigned long int quantity = ; float amountofcheckout = amountofproduct*quantity; } std::cout << std::setprecision(15) << amountofcheckout << std::endl; return 0;

112 Co pojawi się na wyjściu? 112 #include <iostream> #include <iomanip> int main() { float amountofproduct = f; unsigned long int quantity = ; float amountofcheckout = amountofproduct*quantity; } std::cout << std::setprecision(15) << amountofcheckout << std::endl; return 0; Odpowiedź:

113 Co mówi standard 113 There are three floating-point types: float, double, and long double. The type double provides at least as much precision as float, and the type long double provides at least as much precision as double. The set of values of the type float is a subset of the set of values of the type double; the set of values of the type double is a subset of the set of values of the type long double. The value representation of floating-point types is implementation-defined. [ Note: This document imposes no requirements on the accuracy of floating-point operations; see also [support.limits]. end note ] Integral and floating-point types are collectively called arithmetic types. Specializations of the standard library template std::numeric_limits shall specify the maximum and minimum values of each arithmetic type for an implementation. Źródło:

114 114 Standard IEEE 754

115 Standard IEEE dec = bin

116 Standard IEEE Znak Wykładnik Mantysa 0.1dec = bin

117 Standard IEEE Znak Wykładnik Mantysa 0.1dec = bin float 1 bit 8 bitów 23 bity

118 Standard IEEE Znak Wykładnik Mantysa 0.1dec = bin float double 1 bit 8 bitów 23 bity 1 bit 11 bitów 52 bity

119 Standard IEEE Znak Wykładnik Mantysa 0.1dec = bin float double 1 bit 8 bitów 23 bity 1 bit 11 bitów 52 bity bias = 127 bias = 1023

120 120 Float to bin

121 Standard IEEE dec =

122 Standard IEEE Znak dec = 1

123 Standard IEEE Znak dec = 1 41 / 2 = / 2 = / 2 = / 2 = / 2 = / 2 = 0 1

124 Standard IEEE Znak Mantysa dec =

125 Standard IEEE dec = Znak Mantysa 0.27 * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = * 2 = 0.08

126 Standard IEEE Znak Mantysa dec =

127 Standard IEEE Znak Mantysa dec =

128 Standard IEEE Znak Mantysa dec =

129 Standard IEEE Znak Mantysa dec = = 132dec =

130 Standard IEEE Znak Mantysa dec = = 132dec = 132 / 2 = / 2 = / 2 = 16 1 = bin 16 / 2 = / 2 = / 2 = / 2 = / 2 = 0 1

131 Standard IEEE Znak Wykładnik Mantysa dec =

132 Standard IEEE Znak Wykładnik Mantysa dec =

133 Standard IEEE Znak Wykładnik Mantysa dec =

134 134 Bin to float

135 Standard IEEE Znak Wykładnik Mantysa?dec =

136 Standard IEEE Znak Wykładnik Mantysa?dec = L = (-1) Z * M * 2 K-bias

137 Standard IEEE Znak Wykładnik Mantysa?dec = L = (-1) Z * M * 2 K-bias

138 Standard IEEE Znak Wykładnik Mantysa?dec = L = (-1) 1 * M * 2 K-bias

139 Standard IEEE Znak Wykładnik Mantysa?dec = L = (-1) 1 * M * 2 K-127

140 Standard IEEE Znak Wykładnik Mantysa?dec = L = (-1) 1 * M *

141 Standard IEEE Znak Wykładnik Mantysa?dec = L = (-1) 1 * *

142 Standard IEEE Znak Wykładnik Mantysa?dec = L = -1 * * 2 5

143 Standard IEEE Znak Wykładnik Mantysa?dec = L = * 32

144 Standard IEEE Znak Wykładnik Mantysa?dec = L =

145 Standard IEEE Znak Wykładnik Mantysa?dec = L =

146 Standard IEEE Znak Wykładnik Mantysa?dec = L =

147 Standard IEEE Wartości specjalne NaN =>

148 Standard IEEE Wartości specjalne NaN => INF =>

149 Standard IEEE Wartości specjalne NaN => INF => INF =>

150 150 Boost multiprecision

151 Boost multiprecision 151 // Sprawdzamy, czy możemy osiągnąć wartość 0.1 long double a = 0.1; std::cout << std::setprecision(100) << a << std::endl; cpp_dec_float_100 b("0.1"); std::cout << std::setprecision(100) << b << std::endl;

152 Boost multiprecision 152 long double a = 0.1; std::cout << std::setprecision(100) << a << std::endl; cpp_dec_float_100 b("0.1"); std::cout << std::setprecision(100) << b << std::endl; Na wyjściu:

153 Boost multiprecision 153 cpp_dec_float_100 counter; // Domyślna wartość jest ustawiana na 0 do { std::cout << "Loop " << std::endl; counter += cpp_dec_float_100("0.1"); } while (counter!= 1.0);

154 Boost multiprecision 154 cpp_dec_float_100 counter; // Domyślna wartość jest ustawiana na 0 do { std::cout << "Loop " << std::endl; counter += cpp_dec_float_100("0.1"); } while (counter!= 1.0); Pętla wykona się dokładnie 10 razy

155 Boost multiprecision 155 float amountofproduct = f; unsigned long int quantity = ; float amountofcheckout = amountofproduct*quantity; std::cout << std::setprecision(30) << amountofcheckout << std::endl; cpp_dec_float_50 amountofproduct2 = cpp_dec_float_50("254.99"); cpp_dec_float_50 quantity2 = cpp_dec_float_50(" "); cpp_dec_float_50 amountofcheckout2 = cpp_dec_float_50(amountofproduct2*quantity2); std::cout << std::setprecision(30) << amountofcheckout2 << std::endl;

156 Boost multiprecision 156 float amountofproduct = f; unsigned long int quantity = ; float amountofcheckout = amountofproduct*quantity; std::cout << std::setprecision(30) << amountofcheckout << std::endl; cpp_dec_float_50 amountofproduct2 = cpp_dec_float_50("254.99"); cpp_dec_float_50 quantity2 = cpp_dec_float_50(" "); cpp_dec_float_50 amountofcheckout2 = cpp_dec_float_50(amountofproduct2*quantity2); std::cout << std::setprecision(30) << amountofcheckout2 << std::endl; Na wyjściu:

157 Decimal float a standard C Są propozycje dodania typów decimal floating-point do standardu:

158 158 K NIEC

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

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

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

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

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

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

Kodowanie liczb. Reprezentacja liczb całkowitych. Standard IEEE 754. dr inż. Jarosław Forenc

Kodowanie liczb. Reprezentacja liczb całkowitych. Standard IEEE 754. dr inż. Jarosław Forenc Rok akademicki 18/19, Wykład nr 4 /63 Plan wykładu nr 4 Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 18/19 Wykład

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

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

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

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH

ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 c Dr inż. Ignacy Pardyka (Inf.UJK) ASK.RD.01 Rok

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

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

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH

Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Podstawy Programowania ELEMENTY PROGRAMU i TYPY DANYCH Michał Bujacz bujaczm@p.lodz.pl B9 Lodex 207 godziny przyjęć: środy i czwartki 10:00-11:00 http://www.eletel.p.lodz.pl/bujacz/ 1 Pytania weryfikacyjne:

Bardziej szczegółowo

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

Wstęp do programowania

Wstęp do programowania Wstęp do programowania wykład 2 Piotr Cybula Wydział Matematyki i Informatyki UŁ 2012/2013 http://www.math.uni.lodz.pl/~cybula Język programowania Każdy język ma swoją składnię: słowa kluczowe instrukcje

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

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

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

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

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

Podstawy Informatyki. Wykład 2. Reprezentacja liczb w komputerze Podstawy Informatyki Wykład 2 Reprezentacja liczb w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych

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

Temat 1: Podstawowe pojęcia: program, kompilacja, kod

Temat 1: Podstawowe pojęcia: program, kompilacja, kod Temat 1: Podstawowe pojęcia: program, kompilacja, kod wynikowy. Przykłady najprostszych programów. Definiowanie zmiennych. Typy proste. Operatory: arytmetyczne, przypisania, inkrementacji, dekrementacji,

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

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

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

Prefiksy binarne. kibibit (Kibit) mebibit (Mibit) gibibit (Gibit) tebibit (Tibit) pebibit (Pibit) exbibit (Eibit) zebibit (Zibit) yobibit (Yibit) Podstawy Informatyki Wykład 2 Reprezentacja liczb w komputerze Jednostki informacji Bit (ang. bit) (Shannon, 948) Najmniejsza ilość informacji potrzebna do określenia, który z dwóch równie prawdopodobnych

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

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

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

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

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

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

Algorytmy i struktury danych. wykład 1

Algorytmy i struktury danych. wykład 1 Plan całego wykładu:. Pojęcie algorytmu, projektowanie wstępujące i zstępujące, rekurencja. Klasy algorytmów. Poprawność algorytmu, złożoność obliczeniowa. Wskaźniki, dynamiczne struktury danych: listy,

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

Pracownia Komputerowa wyk ad IV

Pracownia Komputerowa wyk ad IV Pracownia Komputerowa wykad IV dr Magdalena Posiadaa-Zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Reprezentacje liczb i znaków Liczby: Reprezentacja

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

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

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

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

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

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

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

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59:

Program w C. wer. 12 z drobnymi modyfikacjami! Wojciech Myszka :59: Program w C wer. 12 z drobnymi modyfikacjami! Wojciech Myszka 2018-06-29 14:59:06 +0200 Tak wygląda program w języku C 1 /* H e l l o World i n C, Ansi s t y l e */ 2 # i n c l u d e < s t d i o. h> 3

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

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

Wstęp do programowania

Wstęp do programowania 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

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

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

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście.

Języki i metodyka programowania. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia. Wejście i wyjście. Typy, operatory, wyrażenia Zmienna: [] [ '[' ']' ] ['=' ]; Zmienna to fragment pamięci o określonym

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

Reprezentacja symboli w komputerze.

Reprezentacja symboli w komputerze. 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

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

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

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

dr inż. Jarosław Forenc

dr inż. Jarosław Forenc Informatyka 1 Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia stacjonarne I stopnia Rok akademicki 2018/2019 Wykład nr 7 (12.04.2019) Rok akademicki 2018/2019, Wykład

Bardziej szczegółowo

Stan wysoki (H) i stan niski (L)

Stan wysoki (H) i stan niski (L) PODSTAWY Przez układy cyfrowe rozumiemy układy, w których w każdej chwili występują tylko dwa (zwykle) możliwe stany, np. tranzystor, jako element układu cyfrowego, może być albo w stanie nasycenia, albo

Bardziej szczegółowo

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

Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Dr inż. Grażyna KRUPIŃSKA Grazyna.Krupinska@fis.agh.edu.pl D-10 pokój 227 WYKŁAD 7 WSTĘP DO INFORMATYKI Wyrażenia 2 Wyrażenia w języku C są bardziej elastyczne niż wyrażenia w jakimkolwiek innym języku

Bardziej szczegółowo

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

Wstęp do Informatyki. Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery Wstęp do Informatyki Reprezentacja liczb w komputerze Arytmetyka stało- i zmiennoprzecinkowa Przechowywanie danych pliki i foldery Pozycyjne systemy liczbowe Dziesiętny system liczbowy (o podstawie 10):

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

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1

Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia. Krzysztof Banaś Podstawy programowania 1 Podstawy programowania. Wykład Co jeszcze... Przypomnienia, uzupełnienia Krzysztof Banaś Podstawy programowania 1 Typy danych Podstawowe wbudowane typy danych języka C: _Bool 0 i 1 (C99) znaki (char) 7

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

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory

Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Programowanie I C / C++ laboratorium 02 Składnia pętli, typy zmiennych, operatory Jarosław Piersa Wydział Matematyki i Informatyki, Uniwersytet Mikołaja Kopernika 2013-02-19 Pętla while Pętla while Pętla

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

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

Języki i metodyka programowania. Reprezentacja danych w systemach komputerowych Reprezentacja danych w systemach komputerowych Kod (łac. codex - spis), ciąg składników sygnału (kombinacji sygnałów elementarnych, np. kropek i kresek, impulsów prądu, symboli) oraz reguła ich przyporządkowania

Bardziej szczegółowo

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe:

Podstawy Informatyki. Kompilacja. Historia. Metalurgia, I rok. Kompilatory C++ Pierwszy program. Dyrektywy preprocesora. Darmowe: Podstawy Informatyki Metalurgia, I rok Historia Lata 0-te XX w język C (do pisania systemów operacyjnych) "The C programming language" B. Kernighan, D. Ritchie pierwszy standard Koniec lat 80 standard

Bardziej szczegółowo

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28:

Program w C. wer. 10 z drobnymi modyfikacjami! Wojciech Myszka :28: Program w C wer. 10 z drobnymi modyfikacjami! Wojciech Myszka 2015-05-02 18:28:29 +0200 Tak wygląda program w języku C 1 / Hello World in C, Ansi s t y l e / 2 #include < s t d i o. h> 3 i n t main ( void

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

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

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

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

4 Standardy reprezentacji znaków. 5 Przechowywanie danych w pamięci. 6 Literatura ARCHITEKTURA SYSTEMÓW KOMPUTEROWYCH reprezentacja danych ASK.RD.01 c Dr inż. Ignacy Pardyka UNIWERSYTET JANA KOCHANOWSKIEGO w Kielcach Rok akad. 2011/2012 1 2 Standardy reprezentacji wartości całkowitoliczbowych

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

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

( wykł. dr Marek Piasecki )

( wykł. dr Marek Piasecki ) INE 1007 Informatyka 1 Język programowania C++ ( wykł. dr Marek Piasecki ) Literatura: dowolny podręcznik do języka C++ (na laboratoriach Borland C++ 3.1) Robert Lafore Jerzy Grębosz Andrzej Zalewski Programowanie

Bardziej szczegółowo

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++

Podstawy Informatyki. Metalurgia, I rok. Wykład 6 Krótki kurs C++ Podstawy Informatyki Metalurgia, I rok Wykład 6 Krótki 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

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2

Cyfrowy zapis informacji. 5 grudnia 2013 Wojciech Kucewicz 2 Cyfrowy zapis informacji 5 grudnia 2013 Wojciech Kucewicz 2 Bit, Bajt, Słowo 5 grudnia 2013 Wojciech Kucewicz 3 Cyfrowy zapis informacji Bit [ang. binary digit] jest elementem zbioru dwuelementowego używanym

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

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

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

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

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

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

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

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie:

Kod znak-moduł. Wartość liczby wynosi. Reprezentacja liczb w kodzie ZM w 8-bitowym formacie: Wykład 3 3-1 Reprezentacja liczb całkowitych ze znakiem Do przedstawienia liczb całkowitych ze znakiem stosowane są następujące kody: - ZM (znak-moduł) - U1 (uzupełnienie do 1) - U2 (uzupełnienie do 2)

Bardziej szczegółowo

Pracownia Komputerowa wyk ad V

Pracownia Komputerowa wyk ad V Pracownia Komputerowa wyk ad V dr Magdalena Posiada a-zezula Magdalena.Posiadala@fuw.edu.pl http://www.fuw.edu.pl/~mposiada Magdalena.Posiadala@fuw.edu.pl 1 Reprezentacje liczb i znaków Liczby: Reprezentacja

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

Temat 4. Kodowanie liczb

Temat 4. Kodowanie liczb Temat 4. Kodowanie liczb Spis treści do tematu 4 4.1. Kodowanie liczb stałopozycyjnych 4.1.1. Naturalny kod binarny NKB 4.1.2. Kod dwójkowo-dziesiętny BCD 4.1.3. Kod Graya 4.1.4. Kod znak-moduł 4.1.5.

Bardziej szczegółowo

Informatyka 1. Wykład nr 4 ( ) Plan wykładu nr 4. Politechnika Białostocka. - Wydział Elektryczny

Informatyka 1. Wykład nr 4 ( ) Plan wykładu nr 4. Politechnika Białostocka. - Wydział Elektryczny Rok akademicki 8/9, Wykład nr 4 /8 Plan wykładu nr 4 Informatyka Politechnika Białostocka - Wydział Elektryczny Elektrotechnika, semestr II, studia niestacjonarne I stopnia Rok akademicki 8/9 Wykład nr

Bardziej szczegółowo

Arytmetyka stało- i zmiennoprzecinkowa. 1. Informacje wstępne

Arytmetyka stało- i zmiennoprzecinkowa. 1. Informacje wstępne Arytmetyka stało- i zmiennoprzecinkowa 1. Informacje wstępne Każdą informację można przedstawid w komputerze za pomocą łaocucha elemantarnych jednostek, zwanych bitami. W przypadku, gdy chcielibyśmy wyrazid

Bardziej szczegółowo

1 Podstawy c++ w pigułce.

1 Podstawy c++ w pigułce. 1 Podstawy c++ w pigułce. 1.1 Struktura dokumentu. Kod programu c++ jest zwykłym tekstem napisanym w dowolnym edytorze. Plikowi takiemu nadaje się zwykle rozszerzenie.cpp i kompiluje za pomocą kompilatora,

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

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

Wstęp do Programowania, laboratorium 02

Wstęp do Programowania, laboratorium 02 Wstęp do Programowania, laboratorium 02 Zadanie 1. Napisać program pobierający dwie liczby całkowite i wypisujący na ekran największą z nich. Zadanie 2. Napisać program pobierający trzy liczby całkowite

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

Języki i metodyka programowania. Wprowadzenie do języka C

Języki i metodyka programowania. Wprowadzenie do języka C Literatura: Brian W. Kernighan, Dennis M. Ritchie Język Ansi C, Wydawnictwa Naukowo - Techniczne, 2007 http://cm.bell-labs.com/cm/cs/cbook/index.html Scott E. Gimpel, Clovis L. Tondo Język Ansi C. Ćwiczenia

Bardziej szczegółowo

Programowanie w języku C++

Programowanie w języku C++ INE 2022 JĘZYKI PROGRAMOWANIA 1 INE 0050 WSTĘP DO PROGRAMOWANIA Programowanie w języku C++ ( wykł. dr Marek Piasecki ) Literatura: do wykładu dowolny podręcznik do języka C++ na laboratoriach Borland C++

Bardziej szczegółowo

Wstęp do Programowania 2

Wstęp do Programowania 2 Wstęp do Programowania 2 dr Bożena Woźna-Szcześniak bwozna@gmail.com Akademia im. Jana Długosza Wykład 2 Stałe całkowite inne niż dziesiętne Stałe ósemkowe Stałe szesnastkowe Aby wskazać czy dane maj a

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

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