AK_wyklad2_2014_15_cz1.pdf

(401 KB) Pobierz
Kodowanie liczb całkowitych
w systemach komputerowych
770662102.029.png 770662102.030.png 770662102.031.png 770662102.032.png 770662102.001.png
System pozycyjny
Systemy addytywne – znaczenie historyczne
Systemy pozycyjne
∞
A = i =−∞
r i i a i
r – podstawa systemu liczbowego ( radix )
A – wartość liczby
a - cyfra
i – pozycja cyfry
np.
−11,3125 dziesiętnie = −1101,0101 dwójkowo
770662102.002.png 770662102.003.png 770662102.004.png 770662102.005.png 770662102.006.png 770662102.007.png 770662102.008.png
Reprezentacja części ułamkowej
Liczby, które mają skończoną postać w jednym
systemie, mogą mieć nieskończone rozwinięcie
w innych systemach (!)
np. 0,1 dziesiętnie = −0,0(0011) dwójkowo
Jaki będzie efekt działania tego programu?
Na czym polega błąd programisty?
#include <stdio.h>
int main()
{
double i;
for(i=0; i!=1; i+=0.1) printf("%f\n",i);
}
770662102.009.png 770662102.010.png 770662102.011.png 770662102.012.png 770662102.013.png 770662102.014.png
Podstawa systemu liczbowego
Podstawa systemu r ( radix )
ma stałą wartość dla wszystkich pozycji cyfry ( fixed-radix )
dziesiętny, szesnastkowy, ósemkowy, dwójkowy
może mieć różną wartość dla różnych pozycji ( mixed-radix )
czas: godzina, minuta, sekunda r = (24,60,60)
kąt: stopnie, minuty, sekundy r = (360,60,60)
factoradic r = (... 5!, 4!, 3!, 2!, 1!) = (... 120, 24, 6, 2, 1)
54321 factoradic = 719 dziesiętnie
5×5! + 4×4! + 3×3! + 2×2! + 1×1! = 719
primoradic r = (... 11, 7, 5, 3, 2, 1)
54321 primoradic = 69 dziesiętnie
5×7 + 4×5 + 3×3 + 2×2 + 1×1 = 69
nie musi być liczbą naturalną (liczby ujemne, wymierne, zespolone)
54321 -10 = −462810 dziesiętnie
770662102.015.png 770662102.016.png 770662102.017.png 770662102.018.png 770662102.019.png 770662102.020.png
Cyfry systemu liczbowego
System o podstawie r , który wykorzystuje standardowy
zestaw cyfr [0.. r -1] to system nieredundantny
dwójkowy → 0, 1
dziesiętny → 0... 9
szesnastkowy → 0... F
System, który posiada więcej cyfr niż r jest systemem
redundantnym
dwójkowy → 0,1,2 lub -1,0,1
dziesiętny → 0... 9 ♠, ♣, ♥, ♦
W systemach redundantnych reprezentacja liczby nie
jest unikalna
dwójkowy [0,1,2]: 1000 = 8 dziesiętnie i 0120 = 8 dziesiętnie
770662102.021.png 770662102.022.png 770662102.023.png 770662102.024.png 770662102.025.png 770662102.026.png 770662102.027.png 770662102.028.png
Zgłoś jeśli naruszono regulamin