4. Procesor – informacje ogólne

4.10. Typy całkowitoliczbowe

Komputer pracuje na danych binarnych. Dane binarne można też bardziej kompaktowo przedstawić w postaci heksadecymalnej. Dane całkowitoliczbowe są przetwarzane przez jednostki ALU. Całkowitoliczbowe typy danych zrozumiałe dla procesora przedstawione są na rysunku 16.

 

Rys. 16. . Typy danych całkowitoliczbowych [źródło: Intel® 64 and IA-32 Architectures
Software Developer’s Manual, Volume 1: Basic Architecture, January 2013

Najprostszym typem jest liczba całkowita bez znaku (ang. unsigned integer). W tym przypadku wszystkie bity są używane do przechowywania wartości liczby. Drugim podstawowym typem jest liczba całkowita ze znakiem.  Można używać różnych konwencji. W przypadku konwencji znak-moduł jeden, najbardziej znaczący, bit liczby jest dedykowany do przechowywania znaku: 0 oznacza liczbę dodatnią, 1 – ujemną, a pozostałe bity – wartość liczby. Problemem jest to, że tak zdefiniowane liczby nie dają poprawnych wyników przy bezpośrednim dodawaniu, czy odejmowaniu. Dlatego częściej stosowana jest inna konwencja, tzw. uzupełnienie do 2. W tym przypadku liczbę ujemną tworzy się przez zanegowanie liczby dodatniej i dodanie liczby 1. Tak zdefiniowane liczby dają poprawne wyniki dodawania, odejmowania, co jest bardzo wygodne. Liczby mogą być 8, 16, 32, 64, 128 bitowe. Rzadziej stosuje się format BCD (ang. Binary-Coded Decimal), gdzie na 4 bitach zakodowana jest jedna cyfra liczby dziesiętnej. Ponieważ najmniejszą jednostką alokacji pamięci jest bajt, to bardziej znaczące 4 bity nie są wykorzystywane. W tym przypadku jeden bajt koduje jedną cyfrę liczby BCD. Liczby takie można również przedstawiać w postaci spakowanej, gdzie cały bajt jest wykorzystany i koduje 2 cyfry dziesiętne. Oczywiście wszystkie operacje arytmetyczne na takich liczbach są dość skomplikowane.