Изучение методов перевода чисел из одних систем исчисления в другие (Лабораторная работа № 7), страница 3

Последовательность из 1024 байтов образует единицу измерения объема памяти компьютера. Эту единицу обозначают Кбайт, здесь К — латинская буква, которая читается “кей” и обозначает не тысячу, а 1024.

Последовательность из 1K Кбайт, т.е. 1048576 байт, называется Мбайтом. Эти две единицы в мире программистов и пользователей часто не совсем точно называют “килобайт” и “мегабайт” соответ­ственно, хотя это совсем не тысяча и не миллион байтов. Кстати, 1 Гбайт, хотя и читается “гигабайт”, обозначает не миллиард, а 1073741824 байтов.

1.2.2. Представление целых чисел, символов и булевых значений

Булевы значения false и true представляются, как правило, в одном байте комбинациями соответственно 00000000 и 00000001.

Символы от chr(0) до chr(255) изображаются в одном байте комбинациями из нулей и единиц соответственно от 00000000 до 11111111. Например, символ chr(32), или ‘ ‘(пробел), изображается как 00100000, символ chr(48), или '0', – как 00110000 и т.п.

Целые числа представляются в компьютере, главным образом, в двух формах – беззнаковой и знаковой. Далее мы будем отожде­ствлять числа с их представлением, хоть это и неправильно с точки зрения математики.

Беззнаковые числа занимают определенное количество байтов N, которое задает диапазон (множество) этих чисел от 0 до 28N-1. Чаще всего N=1, 2 или 4, и диапазоны чисел – от 0 до 255, 65535 или 4294967295 соответственно. Байты записываются от младших к старшим справа налево и нумеруются от 0 до N-1. Биты в байтах также записываются от младших к старшим справа налево и ну­меруются от 0 до 7 (см. рис. ниже). Всего в N байтах содержится 8N бит, которые нумеруются справа налево от 0 до 8N-1. Биты с номерами 8N-1,..., 8N-8 образуют старший байт (он слева), а с номерами 7,..., О – младший (справа). Комбинация битов x8N-1,..., х0 изображает в двоичной системе число:

x8N-1•28N-1+…+x1•2+x0

   7                       0            7                         0 7                         0

    8N-1   …    N-8                     15…8                       7…0

Рис. 1. Нумерация битов в представлении числа

Например,  комбинация 00...00 задает число 0,  комбинация 00...01 — число I, 00...10 —   число 2, 11...11 — число 28N-l.

Таблица 1

Число      

Код

28N-1 - 1

01…11

28N-1 - 2

01…10

1

00…01

0

00…00

-1

11…11

-2

11…10

-28N-1 + 1

10…01

-28N-1

10…00

Знаковые числа занимают те же N (т.е. 1, 2 или 4) байтов. Старший бит изображает знак числа: 0 – знак ‘+’, 1 – знак ‘-‘. Положительные числа представлены так же, как и беззнаковые, за счет знакового бита диапазон их меньше – от 0 до 28N-1-1. При N = 1, 2 или 4 это соответственно 121, 32761 или 2147483647. Такое представление называется прямым кодом. Например, прямой максимального целого – 011...1.

Отрицательные числа представляются в коде, называемом дополнительным. Для отрицательного числа А он обозначается D(А) и образуется таким образом:

1)   по прямому коду числа |А| заменой всех 0 на 1 и всех 1 на 0 строится обратный код R(А);

2)   по R(A) как беззнаковому целому числу вычисляется D(A)=R(A)+1.

Очевидно, что D(A)=R(|A|-l). Например, построим двухбайтовый дополнительный код числа -144. Прямым двухбайтовым код числа 144 будет:

ОООО’ОООО’1001’0000

(апострофы записаны для наглядности), а обратным:

1111’1111’0110’1111