В микропроцессорах двоичные коды используются для представления любой обрабатываемой информации. При этом разрядность обрабатываемых чисел может превышать разрядность самого процессора и используемой в нём памяти. В этом случае длинное число может занимать несколько ячеек памяти и обрабатываться несколькими командами процессора. При обработке все ячейки памяти, выделенные под многобайтное число, рассматриваются как одно число.
Для представления числовой информации могут использоваться знаковые и беззнаковые коды. Для определённости примем длину слова процессора равной восьми битам.
Беззнаковые двоичные коды.
Первый вид двоичных кодов, который мы рассмотрим - это целые беззнаковые коды. В этих кодах каждый двоичный разряд представляет собой степень цифры 2:
При этом минимально возможное число, которое можно записать таким двоичным кодом, равно 0. Максимально возможное число, которое можно записать таким двоичным кодом, можно определить как:
Этими двумя числами полностью можно определить диапазон, чисел которые можно представить таким двоичным кодом. В случае двоичного восьмиразрядного беззнакового целого числа диапазон будет: диапазон чисел, которые можно записать таким кодом: 0 .. 255. Для шестнадцатиразрядного кода этот 0 .. 65535. В восьмиразрядном процессоре для хранения такого числа используется две ячейки памяти, расположенные в соседних адресах. Для работы с такими числами используются специальные команды.
Второй вид двоичных кодов, который мы рассмотрим - это прямые целые знаковые коды. В этих кодах старший разряд в слове используется для представления знака числа. В прямом знаковом коде нулем обозначается знак '+', а единицей - знак '-'. В результате введения знакового разряда диапазон чисел смещается в сторону отрицательных чисел:
В случае двоичного восьмиразрядного знакового целого числа диапазон чисел, которые можно записать таким кодом: -127 .. +127. Для шестнадцатиразрядного кода этот диапазон будет: -32767 .. +32767. В восьмиразрядном процессоре для хранения такого числа тоже используется две ячейки памяти, расположенные в соседних адресах.