Podstawy Iformatyk Metalurga, I rok Wykład 3 Lczby w komuterze Jedostk formacj Bt (ag. bt) (Shao, 948) Najmejsza lość formacj otrzeba do określea, który z dwóch rówe rawdoodobych staów rzyjął układ. Jedostka formacj (b). Bajt (ag. byte) (Shao, 948) Najmejsza adresowala jedostka formacj amęc komuterowej, składająca sę z btów. Zazwyczaj rzyjmuje sę, że B = 8b (oktet), ale e jest to reguła! Najbardzej zaczący bt (bajt) - bt (bajt) o ajwększej wadze (w zase z lewej stroy). Najmej zaczący bt (bajt) - bt (bajt) o ajmejszej wadze (w zase z rawej stroy). Systemy ozycyje W ozycyjych systemach lczbowych te sam symbol (cyfra) ma różą wartość w zależośc od ozycj, którą zajmuje w zase daej lczby. 4 x = c4c3c2cc = c = odstawa systemu ozycyjego. Do zasu lczby służą cyfry c (których jest ) ustawae a kolejych ozycjach.pozycje umerujemy od zaczyając od stroy rawej zasu. Każda ozycja osada swoją wagę rówą. Wartość lczby oblczamy sumując loczyy cyfr rzez wag ch ozycj. Systemy ozycyje zas lczby ułamkowej x = c c2cc c c 2... c m = c = m.... Część ułamkowa lczby m ozycj. Część całkowta lczby ozycj. Wartość lczby oblczamy sumując loczyy cyfr rzez wag ch ozycj. System dwójkowy (bary) Gottfred Lebtz, XVIIw. Cyfry:,. Przykład:. (2) = *2 5 + *2 4 + *2 3 + *2 2 + *2 + *2. + *2 - + *2-2 + *2-3 + *2-4 System te jest wygody maszyy. Rerezetacja cyfry barej zajmuje dokłade jede bt. -cyfrowa lczba bara bez zaku zajmuje btów w amęc komutera. Kowersja kodu dzesętego a dwójkowy Część całkowtą lczby dzelmy sukcesywe rzez 2 berzemy reszty 55 27 3 6 3 55 () = (2) 55.825 Część ułamkową lczby możymy sukcesywe rzez 2 berzemy część całkowtą 625 25 5 825.825 () =. (2) 55.825 () =. (2)
System szesastkowy Cyfry:,, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. System łaczy zalety systemu barego (dobre wykorzystae amęc) oraz dzesątkowego (zwęzłość). Rerezetacja cyfry szesastkowej zajmuje 4 bty: Cyfra () (2) Cyfra () (2) 2 3 4 5 6 7 2 3 4 5 6 7 8 9 A B C D E F 8 9 2 3 4 5 Rerezetacja lczb całkowtych Założee: lczba całkowta ze zakem jest zasywaa w słowach -btowych. (Dla rzykładu weźmy = 8). zak (ajbardzej zaczący bt) moduł lczby (7 btów). Lczba eujema jest kodowaa jako: zak kod bary modułu tej lczby.. lczba 55 w rzykładze owyżej. Przykład: 37.D = 3*6 + 7*6 + D*6 - Lczba ujema jest kodowaa jako: zak kod bary modułu tej lczby. Lczba -55 bo (2) =55 () = -55 + Sosób wygody dla człoweka. Przy oeracjach arytmetyczych trzeba orówać zak. Podwója rerezetacja lczby : oraz (redudacja). Zakres lczb: [-2 - +, 2 - - ] (2 - lczb). Kod uzuełeń do (U) Lczba ujema x (aalogcze rzecwa) jest kodowaa a jede z dwóch (rówoważych) sosobów: egujemy (btowo) kod bary modułu x albo berzemy kod bary lczby 2 - +x. Sosób : lczba -55 ) Kod bary modułu (=55): 2) Negacja btowa: Sosób 2: lczba -55 ) Kod bary lczby 2 8 - -55 =256-56 =2: Sosób mało wygody dla człoweka. + Łatwe oeracje arytmetycze. Dwe rerezetacje lczby : oraz. Zakres lczb: [-2 - +, 2 - - ] (2 - lczb). Zasady dodawaa Lczby zasae w kodze U dodajemy zgode z zasadam dodawaa dwójkowego, ale 2 jeżel wystą rzeesee oza bt zaku, to do wyku ależy dodać. (77) + (-43) + (34) Z rzeeseem (-77) + (-43) + (-2) Kod uzuełeń do 2 (U2) Lczba ujema x (aalogcze rzecwa) jest kodowaa a jede z dwóch (rówoważych) sosobów: egujemy (btowo) kod bary modułu x dodajemy ; berzemy kod bary lczby 2 +x. Sosób : lczba -55 ) Kod bary modułu (=55): Sosób 2: lczba -55 ) Kod bary lczby 2) Negacja btowa: 2 8-55 =256-55 =2: 3) Dodae : Sosób mało wygody dla człoweka. + Łatwe oeracje arytmetycze. Jeda rerezetacja lczby : Zakres lczb: [-2 -, 2 - -] (2 lczb).
Dodawae w kodze U2 Dodawae w kodze U2 odbywa sę zgode z zasadam dodawaa dwójkowego (-77) + (43) (-34) (-77) + (-43) (-2) (77) + (-43) (34) Lczby ułamkowe stałorzeckowe Lczba stałoozycyja ( +m)-btowa osada btów rzezaczoych a część całkowtą oraz m btów rzezaczoych a kodowae częśc ułamkowej. c... c3c2cc. c c 2... c m = c = m Założee: lczba bez zaku. Wartość ajwększa: 2 - + 2 -m = 2 2 -m Wartość ajmejsza: + 2 -m = 2 -m Lczby zmeorzeckowe (floatg-ot umbers) Lczba zmeorzeckowa x =(-) s m c s zak lczby, m matysa, odstawa systemu, c cecha. m e = 9.9 x -3 kg G = 6.67 x - m 3 kg - s -2 N A = 6.22 x 23 mol - Normalzacja lczby zmeorzeckowej Położee rzecka w lczbe zmeorzeckowej e jest ustaloe. 273.6 = 2.736 x 2 =.2736 x 3 = 2736 x -2 Zormalzowaa lczba zmeorzeckowa to taka lczba, której matysa seła zależość: W systeme dzesętym: czyl m=.... 9.999999 m < m W systeme dwójkowym zormalzowaa lczba zmeorzeckowa ma zawsze część całkowtą rówą ±. Stadard IEEE 754 Zatem, do zakodowaa lczby zmeorzeckowej otrzeba zakodować (rzyjmujemy, ze odstawa będze rówa 2): zak, matysę, cechę. W celu ujedolcea rerezetacj barej oraz oeracj umeryczych a różych latformach srzętowych, wrowadzoo stadard zasu zmeorzeckowego IEEE 754 (Wllam Kaha). Stadard te defuje: formaty rerezetacj lczb zmeorzeckowych: sgle-recso (32 bty), double-recso (64bty), sgle-exteded recso ( 43 btów) double-exteded recso ( 79 btów, zazwyczaj 8 btów), wartosc secjale (. eskończoość, NaN), zmeorzeckowe oeracje, modele zaokrąglaa, wyjątk.
Ogóly format w stadardze IEEE 754 Lczby ojedyczej recyzj sg(bt zaku): lczba dodata, lczba ujema, exoet (cecha): kod z admarem (BIAS = 2 e- - ), fracto (matysa): lczba stałorzeckowa, kod U, ozbawoa ajbardzej zaczącego btu rerezetującego część całkowtą bt te e jest rzechowyway. e lczba btów cechy Ty Cecha Matysa zera lczby ezormalzowae lczby zormalzowae eskończoośc NaN (eokreśloe) od do 2 e- 2 e - 2 e - dowola 3 23 bt zaku: lczba dodata, lczba ujema, cecha: (BIAS =27), zakres: -26 27, matysa: m =.fracto Zormalzowae lczby o ajmejszym module: ±2-26 ±.7549435-38 Lczby o ajwększym module: ±(( - (/2) 24 )2 28 ) ± 3.428235 38 Lczby odwójej recyzj 63 52 bt zaku: lczba dodata, lczba ujema, cecha: (BIAS =23), zakres: -22 23, matysa: m =.fracto Zormalzowae lczby o ajmejszym module: ±2-22 ±2.225738585722-38 Lczby o ajwększym module: ±(( - (/2) 53 )2 24 ) ±.79769334862357 38 Stałe zmee Podstawowym obektam wystęującym w rograme są stałe zmee. Ich zaczee jest take samo jak w matematyce. Stałe zmee muszą osadać azwę osadają rzysaą wartość. Nazwa jest cągem zaków, z których erwszy mus być lterą,.: x, alfa, erwastek, Obowązują tylko zak ASCII (abc...z, ABC...XYZ). Ne ma olskch lter a greckch. Charakter zmeych jest deklaroway we wstęej częśc rogramu (zazwyczaj zaraz a oczątku, rzed strukcjam właścwym rogramu) Zmee są różych tyów: całkowte :, 2, 28 rzeczywste :.456, -734.29 logcze : true, false zakowe : me, adres t. Tyy zmeych w Fortrae INTEGER* ( bajt) -28 27 INTEGER*2 (2 bajty) -32768 32767 INTEGER*4 (4bajty) -247483648 247483647 REAL*4 (4 bajty) ±.75494E-38 3.42823E+38 REAL*8 (8 bajtów) COMPLEX (zesoloy) LOGICAL (logczy) CHARACTER* CHARACTER* ±2.22574D-38.797693D+38 ara lczb REAL.true..false. długość jak INTEGER bajt bajtów
Tyy zmeych w Pascalu SHORTINT (-28..27) bajt INTEGER (-32768..32767} 2 bajty LONGINT {-247483648..247483647} 4 bajty BYTE {..255} bajt WORD {..65535} 2 bajty BOOLEAN {TRUE/FALSE} logczy /8 bajta CHAR zak bajt STRING -255 zaków REAL {2.9E-39...7E38} 6 bajtów DOUBLE {5.E-324...7E38} 8 bajtów EXTENDED {.9E-495...E4932} bajtów Tyy daych w języku C t - ty całkowty. Zmee tego tyu tyu mogą rzyjmować wartośc całkowte dodate lub ujeme. short t - ty całkowty krótk log t - ty całkowty dług float - ty zmeorzeckowy ojedyczej recyzj. double - ty zmeorzeckowy odwójej recyzj. log double - ty zmeorzeckowy odwójej recyzj dług. vod - ty usty ozaczający brak wartośc (stosoway w ANSI C).Tylko arametry rzekazywae do fukcj mogą być tyu vod (ozacza wtedy, że do fukcj c sę e rzekazuje) lub zwracae rzez fukcję (fukcja c e zwraca). Orócz tego ty vod może być stosoway rzy tworzeu ewych tyów złożoych. char - ty zakowy. Moża za jego omocą rzechowywać zak w kodze ASCII. Na ogół ty char ma bajt długośc w zwązku z czym moża za jego omocą rzechowywać lczby z zakresu -28.. 27 (jeśl jest ze zakem) lub.. 255 (jeśl jest bez zaku). Tablce Tablca jest to struktura daych zawerająca uorządkoway zbór obektów tego samego tyu odowada matematyczemu ojęcu wektora, macerzy, zmeych deksowych, t. 2 3 4 5 6 7 a S = a + + a 2 +... a Dlaczego tablce? Jeśl =3, to e tak waże. A jeśl =? - deklarujemy jedą zmeą tablcową a e zwykłych. - w rograme moża łatwo odwołać sę do elemetu, którego umer jest wylczay,.: k=2*- Dla =5 mamy k=9 Do zmeej tablcowej A odwołujemy sę: x:=a[9], lub x:=a[k], a awet x:=a[2*-] Proste? A gdyby e było zmeych tablcowych? Dlaczego tablce, cd. Przykład rogramu: k=2*- wyberz k z: : x:=a 2: x:=a2 3: x:=a3... 9: x:=a9... : x:=a Bez sesu! Deklraracje tablc FORTRAN: DIMENSION A() INTEGER B(55) Uwaga! Ideksy tablc od a()..a() PASCAL: A:array [..] of real; B:array[..55] of teger; C: double a[]; t b[55]; Uwaga! Ideksy tablc od a[]..a[99]