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 systemie dziesiętnym posługujemy się dziesięcioma cyframi, znakami plus i minus oraz przecinkiem określającym pozycję dziesiętna; pozycja poszczególnych cyfr w liczbie określa jaki mnożnik musi zostać zastosowany 27 = 2 3 + 2 + + 7
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 systemie dziesiętnym posługujemy się dziesięcioma cyframi, znakami plus i minus oraz przecinkiem określającym pozycję dziesiętna; pozycja poszczególnych cyfr w liczbie określa jaki mnożnik musi zostać zastosowany 27 = 2 3 + 2 + + 7 czyli dowolną liczbę dodatnią można zapisać jako: n a i i i= dodanie minusa umożliwia reprezentowanie zarówno wartości dodatnich, jak i ujemnych po przecinku umieszczana jest część ułamkowa: mnożnik pierwszej wartości po przecinku wynosi, drugiej 2, itd. system dziesiętny pozwala na dokładną reprezentację dowolnej liczby całkowitej, nie jest to jednak możliwe w przypadku ułamków, które możemy jedynie zapisywać z arbitralnie określoną dokładnością
Pozycyjny system liczbowy system pozycyjny o podstawie nie jest oczywiście jedynym możliwym systemem pozycyjnym n cyfrową liczbę całkowitą dodatnią w systemie o podstawie B można zapisać w postaci: n a i B i i= wybór podstawy systemu jest ograniczony faktem, że w systemie o podstawie B do zapisu wartości konieczne jest B symboli, z drugiej strony potrzebne są co najmniej dwa znaki, gdyż jeden z nich () pełni funkcję wypełniacza (placeholder) w informatyce liczby najczęściej wyrażane są w systemie o podstawie dwa, osiem, bądź szesnaście
System dwójkowy system pozycyjny o podstawie 2 nazywany jest systemem dwójkowym (binarnym) do zapisu wartości stosowane są dwa symbole i cyfry w systemie dwójkowym nazywane są bitami (bits binary digits) wartość na pozycji n liczby dwójkowej przemnażana jest przez 2 n = 6 + 8 + 4 + 2 + = 2 2 4 + 2 3 + 2 2 + 2 + 2 6 + 4 +
Przechowywanie informacji w postaci bitów na pojedynczym bicie można zapisać dwie (dowolne) wartości, i na n bitach (pozycjach) liczby dwójkowej można zapisać 2 n różnych wartości, największa równa jest 2 n na jednym bajcie (ośmiu bitach), można zapisać 2 8 = 256 różnych wartości, ale ponieważ jedna z nich musi reprezentować zero największą możliwą liczbą jest 2 8 = 255 w komputerze liczby zapisywane są jako słowa o ustalonym rozmiarze, oznacza to, że każda liczba binarna musi mieć taką samą liczbę bitów; w przypadku wartości całkowitych jest to zapewnione przez uzupełnienie liczby zerami z lewej strony
Niektóre cechy liczb binarnych jeżeli bit zerowy (skrajny prawy) liczby całkowitej jest zerem, liczba jest parzysta ( - nieparzysta) przesunięcie wszystkich bitów liczby o jedno miejsce w lewo powoduje pomnożenie liczby przez 2 przysunięcie wszystkich bitów liczby bez znaku w prawo o jedno miejsce oznacza podzielenie tej liczby przez dwa (dla ujemnych ta reguła nie działa); liczby nieparzyste po podzieleniu zaokrąglane są w dół negacja wszystkich bitów liczby binarnej jest równoważna wzięciu przeciwieństwa liczby i odjęciu od wyniku jedynki zwiększenie o jeden największej możliwej do zapisania na danej liczbie bitów wartości bez znaku daje zero zmniejszenie zera o jeden daje największą możliwą liczbę bez znaku
Zamiana liczb zapisanych w systemie dziesiętnym na dwójkowy znajdujemy największą potęgę liczby dwa mniejszą niż liczba, którą zamieniamy; dla zamienianej liczby dziesiętnej D, takiej że 2 n+ > D > 2 n, jej reprezentacja binarna będzie zapisana na n + bitach i skrajny lewy bit będzie równy od liczby D odejmujemy 2 n i zapamiętujemy wynik R dla każdej potęgi dwójki od 2 n do 2, jeżeli jest ona mniejsza lub równa R, na odpowiadającej jej pozycji w liczbie dwójkowej zapisujemy jedynkę, a potęgę dwójki odejmujemy od R, w przeciwnym wypadku w odpowiedniej pozycji wpisujemy zero
Zamiana liczb zapisanych w systemie dziesiętnym na dwójkowy znajdujemy największą potęgę liczby dwa mniejszą niż liczba, którą zamieniamy; dla zamienianej liczby dziesiętnej D, takiej że 2 n+ > D > 2 n, jej reprezentacja binarna będzie zapisana na n + bitach i skrajny lewy bit będzie równy od liczby D odejmujemy 2 n i zapamiętujemy wynik R dla każdej potęgi dwójki od 2 n do 2, jeżeli jest ona mniejsza lub równa R, na odpowiadającej jej pozycji w liczbie dwójkowej zapisujemy jedynkę, a potęgę dwójki odejmujemy od R, w przeciwnym wypadku w odpowiedniej pozycji wpisujemy zero przykład 4 2 7 < 4 4 28 = 3 2 6 > 3 2 5 > 3 2 4 > 3 2 3 < 3 3 8 = 5 2 2 < 5 5 4 = 2 > 2 >
Reprezentacja binarna liczby zapisanej w systemie dziesiętnym 3 / 2 = 6 r. 6 / 2 = 3 r. 3 / 2 = r. / 2 = r.
Przejście z reprezentacji binarnej do reprezentacji dziesiętnej WAGA x 2 = x 2 = 2 x 2 = 4 x 2 3 = 8 3
Ułamki w reprezentacji binarnej. WAGA x 2 3= /8 x 2 2= x 2 = /2 x 2 = x 2 = x 2 2 = 4 55/ 8
System szesnastkowy (heksadecymalny) w przypadku systemu szesnastkowego do zapisu liczby koniecznych jest szesnaście symboli, stosuje się dziesięć cyfr,, 2, 3, 4, 5, 6, 7, 8 i 9 oraz litery A, B, C, D, E i F symbole od do 9 mają takie same wartości jak w systemie dziesiętnym natomiast ich mnożniki pozycyjne są inne pozostałym symbolom odpowiadają wartości: A -, B -, C - 2, D - 3, E - 4 i F - 5 każda cyfra systemu szesnastkowego odpowiada jednej z możliwych kombinacji czterech cyfr systemu dwójkowego 2-owy 6-owy -tny 2 2 3 3 4 4 5 5 6 6 7 7 2-owy 6-owy -tny 8 8 9 9 A B C 2 D 3 E 4 F 5 cztery cyfry systemu szesnastkowego pozwalają na zapisanie takiej samej wartości jak szesnaście cyfr systemu binarnego
Zamiana liczb zapisanych w systemie szesnastkowym na dwójkowy i odwrotnie 6 2: dla każdej cyfry systemu szesnastkowego należy napisać cztery cyfry dwójkowe reprezentujące tą samą wartość, np.: 4C 6 4 6 = 2 i C 6 = 2 2 2 6: liczbę binarną należy podzielić na grupy po cztery bity zaczynając od prawej strony, jeżeli w ostatniej grupie znalazły się mniej niż cztery bity należy ją uzupełnić zerami z lewej strony (jeżeli liczba binarna zawiera kropkę dziesiętną podziału należy dokonać od prawej do lewej dla części całkowitej i od lewej do prawej dla części ułamkowej); tak otrzymanym grupom należy przypisać równoważne cyfry szesnastkowe, np.: 2 3D 6
System ósemkowy w systemie ósemkowym do zapisu liczby stosowanych jest osiem symboli:,, 2, 3, 4, 5, 6 i 7 symbole mają takie same wartości jak w systemie dziesiętnym, a ich mnożniki pozycyjne są potęgami liczby osiem każda cyfra systemu ósemkowego odpowiada jednej z możliwych kombinacji trzech cyfr systemu dwójkowego 2-owy 8-owy -tny 2 2 3 3 4 4 5 5 6 6 7 7
Zamiana liczb zapisanych w systemie ósemkowym na dwójkowy i odwrotnie 8 2: dla każdej cyfry systemu ósemkowego należy napisać trzy cyfry dwójkowe reprezentujące tą samą wartość, np.: 24 8 8 = 2 2 8 = 2 i 4 8 = 2 2 2 8: liczbę binarną należy podzielić na grupy po trzy bity zaczynając od prawej strony, np.: 2 4 8
Dodawanie liczb w systemie binarnym + + + +
Przykład +
Dodawanie liczb w systemie binarnym A B C i S C o A B C i S C o gdzie: A i B dodawane wartości, C i - przeniesienie z poprzedniej kolumny, S - suma, C o - przeniesienie jeżeli wszystkie trzy bity są zerami suma i przeniesienie wynoszą zero jeżeli którykolwiek z dodawanych bitów jest jedynką, a dwa pozostałe są zerami, suma wynosi jeden, a przeniesienie zero jeżeli dwa bity są jedynkami suma wynosi zero i pojawia się niezerowa wartość przeniesienia jeżeli wszystkie trzy bity są jedynkami zarówno suma, jak i przeniesienie wynoszą jeden
Odejmowanie liczb w systemie dwójkowym *
Przykład
Mnożenie liczb w systemie dwójkowym x x x x
Przykład x +
Dzielenie liczb w systemie dwójkowym :
Wartości ujemne w systemie dwójkowym, gdzie stosowane są dwie cyfry, wygodnie jest stosować jedną z nich dla oznaczenia wartości dodatnich a drugą dla oznaczenia wartości ujemnych skrajny lewy bit wykorzystywany jest jako bit znaku, gdzie zero oznacza wartość dodatnią a jeden wartość ujemną problem dwóch zer ( i ) eliminowany jest przez system uzupełnieniowy do dwóch; wartości dodatnie są traktowane jak wartości całkowite bez znaku, natomiast w przypadku wartości ujemnych bit znaku reprezentuje potęgę liczby dwa odpowiadającą swojej pozycji w liczbie wziętą ze znakiem minus a pozostałe bity są traktowane jak wartości dodatnie, np: 28 26 ( 28 + 27) system uzupełnieniowy do dwóch jest niesymetryczny względem zera, dla dowolnego rozmiaru liczby dwójkowej wartości ujemnych jest o jeden więcej niż wartości dodatnich (dla dowolnej liczby dwójkowej liczba możliwych kombinacji bitów jest zawsze liczbą parzystą), a ponieważ chcemy aby zero było reprezentowane przez ciąg składający się z samych zer nie ma możliwości aby było inaczej liczby w systemie uzupełnieniowym do dwóch mogą być rozszerzone przez powtórzenie bitu znaku po lewej stronie (jeżeli istnieje konieczność zapisania ich na określonej długości ciągu)
Notacja uzupełnieniowa do dwóch wartość liczby w systemie uzupełnieniowym do dwóch otrzymywana jest przez dodawanie do dużej liczby ujemnej (o wartości wynikającej z liczby użytych bitów) odpowiednich potęg dwójki: n 2 2 n a n + a i 2 i istnieje prosta metoda tworzenia wartości w tym systemie: i= należy utworzyć ciąg uzupełnień analizowanej liczby przez negację każdego bitu ( i ) do otrzymanego ciągu należy dodać jedynkę (jak dla operacji bez znaku)
Notacja uzupełnieniowa do dwóch wartość liczby w systemie uzupełnieniowym do dwóch otrzymywana jest przez dodawanie do dużej liczby ujemnej (o wartości wynikającej z liczby użytych bitów) odpowiednich potęg dwójki: n 2 2 n a n + a i 2 i istnieje prosta metoda tworzenia wartości w tym systemie: i= należy utworzyć ciąg uzupełnień analizowanej liczby przez negację każdego bitu ( i ) do otrzymanego ciągu należy dodać jedynkę (jak dla operacji bez znaku) np.: oryginalna wartość 87 każdy bit jest odwrócony + dodajemy wartość wyjściowa 87
Notacja uzupełnieniowa do dwóch ( + ) 2 2 bit znaku ( ) 3 3 4 4 5 5 6 6 7 7 bit znaku 8
Liczby ze znakiem Na n bitach można zapisać wartości ze znakiem od 2 n do +2 n czyli: bajt od 28 do +27 6 bitów od 32 768 do +32 767 32 bity od 2 47 483 648 do +2 47 483 647
Przepełnienie (overflow) rozmiar wartości, na których dokonywane są obliczenia zależy od architektury komputera niezależnie od architektury istnieje maksymalna możliwa wartość niezależnie od architektury mamy do czynienia ze skończoną precyzją obliczeń zawsze też będzie się pojawiał problem przepełnienia, czyli przekroczenia zakresu reprezentowanych wartości (jeżeli posługiwalibyśmy się trzycyfrowym systemem dziesiętnym, to moglibyśmy np. zapisać w nim wartości i 3 oraz otrzymać poprawną wartość ich sumy, ale w przypadku wartości 5 i 7 ich suma nie jest możliwa do zapisania na trzech pozycjach) przepełnienie nie może wystąpić przy dodawaniu dwóch liczb o przeciwnych znakach przepełnienie może się pojawić np. przy dodawaniu dwóch wartości dodatnich lub dwóch wartości ujemnych (zapisanych w notacji uzupełnieniowej do dwóch), z przepełnieniem mamy do czynienia jeżeli doszło do zmiany znaku (kontrola może być dokonana poprzez bit znaku)
Przepełnienie Może się okazać, że prawa łączności i przemienności działań niekoniecznie są spełnione:
Przepełnienie Może się okazać, że prawa łączności i przemienności działań niekoniecznie są spełnione: a + (b c) = (a + b) c jeżeli np. a = 7, b = 4 i c = 3 lewa strona wyrażenia zwraca poprawny wynik 8, natomiast po prawej stronie pojawia się przepełnienie: (7 + 4) = czyli wartość, której nie da się zapisać na trzech pozycjach
Przepełnienie Może się okazać, że prawa łączności i przemienności działań niekoniecznie są spełnione: a + (b c) = (a + b) c jeżeli np. a = 7, b = 4 i c = 3 lewa strona wyrażenia zwraca poprawny wynik 8, natomiast po prawej stronie pojawia się przepełnienie: (7 + 4) = czyli wartość, której nie da się zapisać na trzech pozycjach a (b c) = a b a c jeżeli np. a = 5, b = 2 i c = 95 lewa strona wyrażenia zwraca poprawny wynik 75, natomiast po prawej stronie pojawia się przepełnienie: (5 2) = 5
Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S
Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2
Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2 26 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2
Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2 26 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 26 << 2 2 7 + 2 6 + 2 5 + 2 4 + 2 3 8
Przepełnienie - brak odwracalności przykład dla języka C char x=26; printf( %d\n,x); char y=x<<2; printf( %d\n,y); char z=y>>2; printf( %d\n,z); S S S 26 8 2 26 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 26 << 2 2 7 + 2 6 + 2 5 + 2 4 + 2 3 8 8 >> 2 2 7 + 2 6 + 2 5 + 2 4 + 2 3 + 2 2 + 2 2
Dodawanie/odejmowanie w notacji uzupełnieniowej do dwóch + 3 2 5 3 + 2 + 7 5 5 2
Mnożenie liczb dodatnich bez znaku w notacji uzupełnieniowej do dwóch jeżeli skrajny prawy bit mnożnika jest równy jeden kopia mnożnej daje wkład do wyniku dla każdej kolejnej cyfry mnożnika przesuwamy mnożną o jedną cyfrę w lewo algorytm kończy się po przejściu przez wszystkie cyfry mnożnika sumujemy otrzymane wartości
Mnożenie liczb dodatnich bez znaku w notacji uzupełnieniowej do dwóch jeżeli skrajny prawy bit mnożnika jest równy jeden kopia mnożnej daje wkład do wyniku dla każdej kolejnej cyfry mnożnika przesuwamy mnożną o jedną cyfrę w lewo algorytm kończy się po przejściu przez wszystkie cyfry mnożnika sumujemy otrzymane wartości mnożna (7 ) mnożnik (5 ) pierwszy częściowy iloczyn drugi częściowy iloczyn trzeci częściowy iloczyn czwarty częściowy iloczyn wynikowy iloczyn (35 )
Mnożenie liczb w notacji uzupełnieniowej do dwóch - algorytm Bootha Oznaczmy przez m mnożną zapisaną na x bitach, r - mnożnik zapisany na y bitach, P - wynik mnożenia oraz dwie wielkości pomocnicze A i S. P, A i S muszą mieć rozmiar x + y +. określamy wartości A i S oraz wartość początkową P A najbardziej znaczące bity rejestru wypełniamy wartościami m, pozostałe uzupełniamy zerami S najbardziej znaczące bity rejestru wypełniamy wartościami m w notacji uzupełnieniowej do dwóch, pozostałe uzupełniamy zerami P x najbardziej znaczących bitów wypełniamy zerami, następnie wpisujemy wartości r, pozostałe bity uzupełniamy zerami 2. jeżeli dwa najmniej znaczące bity P wynoszą obliczamy P + A (ignorujemy przepełnienie) obliczamy P + S (ignorujemy przepełnienie) lub pozostawiamy P bez zmian 3. dla wartości otrzymanej w kroku 2 dokonujemy przesunięcia arytmetycznego o jedno miejsce w prawo, otrzymany wynik przypisujemy do P 4. powtarzany kroki 2 i 3 y razy 5. usuwamy najmniej znaczący bit
Przykład: m = 3 r = 4 x = 4 y = 4 A (m) S ( m) P (r). P = najmniej znaczące bity wynoszą więc dokonujemy tylko przesunięcia arytmetycznego w prawo (bit najstarszy jest powielany) P = 2. P = najmniej znaczące bity wynoszą więc dokonujemy tylko przesunięcia arytmetycznego w prawo P = 3. P = najmniej znaczące bity wynoszą więc wykonujemy P + S a potem przesunięcie + = 4. P = najmniej znaczące bity wynoszą więc dokonujemy tylko przesunięcia arytmetycznego w prawo P = WYNIK: P ( 2)
Liczby zmiennoprzecinkowe notacja naukowa: n = f e gdzie: f - ułamek, e wykładnik zarówno f, jak i e mogą być ujemne jeżeli f jest ujemne liczba n jest ujemna jeżeli e jest ujemne liczba n jest mniejsza od jeden ideą notacji naukowej jest oddzielenie cyfr znaczących (f ) od rzędu wielkości (e)
Liczby zmiennoprzecinkowe notacja naukowa: n = f e gdzie: f - ułamek, e wykładnik zarówno f, jak i e mogą być ujemne jeżeli f jest ujemne liczba n jest ujemna jeżeli e jest ujemne liczba n jest mniejsza od jeden ideą notacji naukowej jest oddzielenie cyfr znaczących (f ) od rzędu wielkości (e) ta sama idea jest wykorzystywana w przypadku zapisu liczb zmiennoprzecinkowych, dzięki temu możliwy jest zapis wartości z bardzo szerokiego zakresu z akceptowalną dokładnością obecnie obowiązuje standard IEEE 754 zapisu wartości zmiennoprzecinkowych (IEEE Institute of Electrical and Electronic Engineers) część ułamkowa zapisywana jest w notacji dwójkowej, natomiast wykładnik jest potęgą dwójki
Notacja zmiennopozycyjna BAJT pole wykladnika bit znaku pole czesci ulamkowej mantysa W przypadku liczby o pojedynczej (podwójnej) precyzji: bit znak ( wartość nieujemna, - wartość ujemna) 8() bitów wykładnik zapisywany jako liczba ze znakiem w notacji z nadmiarem (jakim zależy od precyzji) 23(52) bity ułamek Zakres wartości jest rzędu ± 38 ± 38 (± 38 ± 38 )
Normalizacja wartości każdą wartość można zapisać stosując różne wartości w części ułamkowej dobierając odpowiedni wykładnik mając jednak do czynienia z zapisem wartości na określonej i stałej liczbie pozycji zera poprzedzające daną wartość powodują utratę precyzji aby tego uniknąć wartości zmiennoprzecinkowe zapisywane są w taki sposób, że skrajny lewy bit nie może być zerem; tak zapisana wartość jest liczbą znormalizowaną jeżeli wiadomo, że najbardziej lewy bit jest równy jeden nie ma konieczności zapisywania go dzięki czemu zyskuje się dodatkowy znak
Notacja zmiennopozycyjna między dwiema liczbami całkowitymi istnieje nieskończenie wiele wartości rzeczywistych, a więc do ich dokładnego zapisu potrzebnych byłoby nieskończenie wiele bitów istnieje szereg wartości, które nie mogą być zapisane w systemie liczba zero jest zapisywana dokładnie z definicji liczby dodatnie, mieszczą się w zakresie od 2 26 do 2 27, dla liczb większych mamy do czynienia z przepełnieniem dodatnim liczby ujemne, mieszczą się w zakresie od 2 27 do 2 26, dla liczb mniejszych mamy do czynienia z przepełnieniem ujemnym oznacza to, że istnieją wartości bliskie zera, których nie można zapisać; najmniejsza wartość dodatnia w znormalizowanej formie wynosi. 2 26 (niedomiar dodatni), analogiczna sytuacja ma miejsce dla wartości ujemnych w standardzie IEEE wartości bliskie zeru nie są normalizowane, dzięki czemu wykładnik może być równy zero, domyślna jedynka na lewej skrajnej pozycji części ułamkowej może być równa zero i mogą się pojawić poprzedzające zera
Notacja zmiennopozycyjna kolejność obliczeń może wpływać na dokładność wyniku mnożenie - dodaje się wykładniki i mnoży mantysy dzielenie - odejmuje się wykładniki i dzieli mantysy przy wykonywaniu ciągu obliczeń obejmującego dodawanie, odejmowanie, mnożenie i dzielenie, w pierwszej kolejności (o ile to możliwe) należy wykonać mnożenie i dzielenie (wpływ na dokładność) w celu sprawdzenia równości dwóch liczb zmiennopozycyjnych należy ustalić czy różnica pomiędzy nimi jest mniejsza od najmniejszego dopuszczalnego błędu
Inne dopuszczalne wartości ± liczba, w której zarówno wykładnik, jak i ułamek reprezentuje wartość zerową ± liczba, w której wykładnik składa się z samych jedynek, a ułamek z zer NaN liczba, w której wykładnik składa się z samych jedynek, a ułamek jest niezerowy
Notacja z nadmiarem osiem 7 6 2 5 3 4 4 3 5 2 6 7 8 ( + )
Notacja z nadmiarem cztery (z ciągami trzybitowymi) 3 2 2 3 4 ( + )
Notacja zmiennopozycyjna pole wykladnika bit znaku pole czesci ulamkowej mantysa
Notacja zmiennopozycyjna. () 2 (2) (2) liczba nieujemna. (3) (4) (4). 2 3/ 4
Notacja zmiennopozycyjna / 8.?
Notacja zmiennopozycyjna 3 / 8. ZLE DOBRZE
Błędy zaokrąglenia 2 5/ 8. 2 / 2 nieujemna 2
Kolejność dodawania 2 / + 2 / 8 + / 8 +.... +... (2/ 2 ). (2/ 2 )
Kolejność dodawania / 8 + / 8 + 2 / 2 +.... +... ( / 4 ). (2 3/ 4 )
Przykład x=.; while(+x>) x/=2; JAVA C PYTHON x.22e 6.22e 6.22e 6 MIN DOUBLE 4.9E 324 2.2257e 38 2.2257e 38
Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2
Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2 double e=.39e8; double f=.2e-8; e+f=39,
Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2 double e=.39e8; double f=.2e-8; e+f=39, double a=.39e4; double b=.2e-3; a+b=39,
Przykład 2 double c=.39e7; double d=.2e-7; c+d=39,2 double e=.39e8; double f=.2e-8; e+f=39, double a=.39e4; double b=.2e-3; a+b=39, double g=.39e8; double h=.2e8; g+h=259,
Przykład 3 Dana jest 32-bitowa wartość przedstawiona w postaci binarnej: Jaką wartość reprezentuje???
Przykład 3 Dana jest 32-bitowa wartość przedstawiona w postaci binarnej: Jaką wartość reprezentuje??? To zależy od interpretacji!!! Typ Wartość 32-bitowa liczba całkowita 735 59 65 6-bitowa liczba całkowita 26 476 i 28 54 cztery znaki glob liczba zmiennoprzecinkowa.6533 24
Przykład 3a int i; scanf( %d,&i); printf( i=%d\n,i); scanf( %lf,&i); printf( i=%d\n,i); printf( i=%lf\n,i);
Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); scanf( %lf,&i); 3 printf( i=%d\n,i); printf( i=%lf\n,i);
Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); i=3 scanf( %lf,&i); 3 printf( i=%d\n,i); printf( i=%lf\n,i);
Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); i=3 scanf( %lf,&i); 3 printf( i=%d\n,i); i= printf( i=%lf\n,i);
Przykład 3a int i; scanf( %d,&i); 3 printf( i=%d\n,i); i=3 scanf( %lf,&i); 3 printf( i=%d\n,i); i= printf( i=%lf\n,i); i=.
Kodowanie znaków www.unicode.com Unicode 6.. pozwala na zapis znaków ze wszystkich pisanych języków świata, w tym ideogramów, a także innych znaków np. emotikonów
Kodowanie znaków www.unicode.com Unicode 6.. pozwala na zapis znaków ze wszystkich pisanych języków świata, w tym ideogramów, a także innych znaków np. emotikonów np. \u27 \ub5 µ \ub ± \u5a Ś \u27fa