Integer (Informatyka)

różne procesory obsługują różne integralne typy danych. Zazwyczaj sprzęt będzie obsługiwał zarówno typy podpisane, jak i niepodpisane, ale tylko niewielki, stały zestaw szerokości.

w powyższej tabeli wymieniono całkowe szerokości typów, które są obsługiwane w sprzęcie przez wspólne procesory. Języki programowania wysokiego poziomu zapewniają więcej możliwości. Często zdarza się, że typ całki „podwójnej szerokości” ma dwa razy więcej bitów niż największy Typ obsługiwany przez sprzęt., Wiele języków posiada również typy pól bitowych (określona liczba bitów, zwykle ograniczona, aby była mniejsza niż maksymalna szerokość obsługiwana przez sprzęt) i typy zakresów (które mogą reprezentować tylko liczby całkowite w określonym zakresie).

niektóre języki, takie jak Lisp, Smalltalk, REXX, Haskell, Python i Raku obsługują dowolne liczby całkowite (znane również jako liczby całkowite nieskończonej precyzji lub bignums)., Inne języki, które nie wspierają tej koncepcji jako konstrukcji najwyższego poziomu, mogą mieć dostępne biblioteki do reprezentowania bardzo dużych liczb za pomocą tablic mniejszych zmiennych, takich jak Klasa BigInteger Javy lub pakiet „bigint” Perla. Te zużywają tyle pamięci komputera, ile jest konieczne do przechowywania liczb; jednak komputer ma tylko skończoną ilość pamięci, więc one również mogą reprezentować tylko skończony podzbiór liczb całkowitych. Systemy te obsługują bardzo duże liczby, na przykład jeden kilobajt pamięci może być używany do przechowywania liczb o długości do 2466 cyfr dziesiętnych.,

Typ Boolean lub Flag to typ, który może reprezentować tylko dwie wartości: 0 i 1, zwykle utożsamiane odpowiednio z false I true. Ten typ może być przechowywany w pamięci za pomocą pojedynczego bitu, ale często otrzymuje pełny bajt dla wygody adresowania i szybkości dostępu.

4-bitowa ilość jest znana jako kęs (podczas jedzenia, będąc mniejszym niż kęs) lub nybble (będąc kalamburem na formie słowa bajt). Jedna cyfra odpowiada jednej cyfrze w systemie szesnastkowym i zawiera jedną cyfrę lub kod znakowy w systemie binarnym-kod dziesiętny.,

bajty i oktetyedytuj

główne artykuły: bajt i oktet (Informatyka)

termin bajt początkowo oznaczał „najmniejszą adresowalną jednostkę pamięci”. W przeszłości, 5-, 6-, 7-, 8-, i 9-bitowych bajtów. Istnieją również komputery, które mogły adresować pojedyncze bity („maszyna adresowana bitami”), lub które mogły adresować tylko 16-lub 32 – bitowe ilości („maszyna adresowana słowem”). Termin bajt zwykle nie był w ogóle używany w odniesieniu do maszyn bitowych i słownych.

termin oktet zawsze odnosi się do ilości 8-bitowej., Jest najczęściej używany w dziedzinie sieci komputerowych, gdzie komputery o różnych szerokościach bajtów mogą się komunikować.

we współczesnym użyciu bajt prawie niezmiennie oznacza osiem bitów, ponieważ wszystkie inne rozmiary przestały być używane; w ten sposób bajt stał się synonimem oktetu.

WordsEdit

Główny artykuł: Word (architektura komputera)

praktycznie wszystkie nowe procesory desktopowe są zdolne do korzystania ze słów 64-bitowych, chociaż wbudowane procesory z 8 – i 16-bitowym rozmiarem słowa są nadal powszechne. 36-bitowa długość słowa była powszechna we wczesnych czasach komputerów.,

jedną z ważnych przyczyn braku przenośności oprogramowania jest błędne założenie, że wszystkie komputery mają ten sam rozmiar słowa Co komputer używany przez programistę. Na przykład, jeśli programista używający języka C nieprawidłowo zadeklaruje jako int zmienną, która będzie używana do przechowywania wartości większych niż 215-1, program zawiedzie na komputerach z 16-bitowymi liczbami całkowitymi. Ta zmienna powinna być zadeklarowana jako long, która ma co najmniej 32 bity na dowolnym komputerze., Programiści mogą również błędnie założyć, że wskaźnik może być przekonwertowany na liczbę całkowitą bez utraty informacji, co może działać na (niektórych) komputerach 32-bitowych, ale nie na komputerach 64-bitowych z 64-bitowymi wskaźnikami i 32-bitowymi liczbami całkowitymi. Ten problem został rozwiązany przez C99 w stdint.h w postaci intptr_t.

Short integerEdit

krótka liczba całkowita może reprezentować liczbę całkowitą, która może zająć mniej miejsca, mając mniejszy zakres w porównaniu ze standardową liczbą całkowitą na tej samej maszynie.

w języku C oznacza się go skrótem., Wymagane jest co najmniej 16 bitów i często jest mniejsze niż standardowa liczba całkowita, ale nie jest to wymagane. Program zgodny może zakładać, że może bezpiecznie przechowywać wartości pomiędzy −(215-1) i 215-1, ale nie może zakładać, że zakres nie jest większy. W języku Java skrót jest zawsze 16-bitową liczbą całkowitą. W Windows API typ danych SHORT jest zdefiniowany jako 16-bitowa liczba całkowita podpisana na wszystkich komputerach.,>−32,768

+32,767 ushort unsigned 2 0 65,535 Java short signed 2 −32,768 +32,767

Long integerEdit

A long integer can represent a whole integer whose range is greater than or equal to that of a standard integer on the same machine.,

W C jest oznaczany przez long. Musi mieć co najmniej 32 bity i może być większa niż standardowa liczba całkowita. Program zgodny może zakładać, że może bezpiecznie przechowywać wartości pomiędzy −(231-1) i 231-1, ale nie może zakładać, że zakres nie jest większy.

Long longEdit

„long long” przekierowuje tutaj. Nie należy go mylić z długimi lub długimi, długimi, długimi.,

w wersji C99 języka programowania C i C++11 wersja C++, along long typ jest obsługiwany, który ma podwójną minimalną pojemność standardulong. Ten typ nie jest obsługiwany przez kompilatory, które wymagają, aby kod C był zgodny z poprzednim standardem C++, C++03, ponieważ Typ long long nie istniał w C++03. W przypadku kompilatora zgodnego z ANSI / ISO muszą być spełnione minimalne wymagania dla określonych zakresów, tj. −(263-1) do 263-1 dla signed i 0 do 264-1 dla unsigned, jednak rozszerzenie tego zakresu jest dozwolone., Może to być problem przy wymianie kodu i danych między platformami lub przy bezpośrednim dostępie sprzętowym. W związku z tym istnieje kilka zestawów nagłówków zapewniających niezależne od platformy typy dokładnej szerokości. Biblioteka standardowa C zapewnia stdint.h; zostało to wprowadzone w C99 i C++11.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *