
- •1.1 Базовые термины и определения#
- •1.2 Системы счисления
- •1.2.1 Двоичная арифметика&
- •1.3 Представление чисел в компьютере
- •1.3.1 Представление целых чисел
- •1.3.2 Целые числа со знаком
- •1.3.2.1 Представление "знак-и-число"
- •1.3.2.2 Дополнение до единицы
- •1.3.2.3 Дополнение до двух
- •1.3.2.4 Смещение на N
- •1.3.2.5 Сравнительная таблица представления целых чисел$
- •1.3.3 Числа с плавающей точкой. Стандарт IEEE-754
- •1.3.3.1 Смещение степени
- •1.3.3.2 Мантисса
- •1.3.3.3 Числа с плавающей запятой одинарной точности, 32 бита
адресу. Следовательно, первым, наоборот, сохраняется байт с наименьшей значащей частью ("little-end", в исходном числе находится справа). Такой способ принято называть "littleendian" - по-русски говорят "обратное размещение байтов".
Из описанного выше следует, что различие состоит в том, "с какого конца" (end) необходимо начинать сохранять многобайтовое данное.
Распространенные у нас компьютеры с Intel-совместимыми процессорами используют архитектуру "little-endian".
Следует иметь ввиду, что существенным является не столько то, как компьютерная система хранит данные "внутри себя" (в конце концов это ее внутренне дело), а то, как она их сохраняет "снаружи" в файлах. Это с практической точки зрения гораздо важнее.
В качестве примера представим, что текст "UNIX" в качестве двух 2-байтовых слов сохранен "big-endian" системой. Тогда "little-endian" система расшифрует его как "NUXI", переставив буквы в каждом из машинных слов. Это "недоразумение", также связанное с обсуждаемым вопросом, иногда называют "проблемой NUXI". Аналогичные трудности могут возникать при сохранении графических изображений, поскольку цвета в современных компьютерах также кодируются многобайтовыми числами. Так, например, файлы программы Adobe Photoshop и широко распространенный "фотографический" формат JPEG используют схему "big-endian", а не менее распространенные файлы GIF и BMP - "little-endian").
В современном "внеплатформенном" (не предназначенном для какого-то конкретного компьютера) языке Java все данные также хранятся по способу "big-endian". А в языке ADA 95 программисту разрешается самому задавать режим хранения многобайтовых данных.
1.2 Системы счисления
Поскольку система записи чисел, используемая нами повседневно, основывается на степенях десяти, говорят, что число записано в системе счисления с основанием 10.
Система с основанием 2 является естественной для компьютера. В ней применяются степени числа 2 вместо степеней числа. Так, двоичное число типа 1011 представлено в следующем виде:
1 23 0 22 1 21 1 20 В десятичной системе счисления получим:
1 8 0 4 1 2 1 1
С помощью двоичной системы можно выразить любое число (если вы располагаете достаточным количеством битов) в виде комбинации 1 и 0. Эта система удобна для компьютеров, выражающих информацию с помощью состояний "вкл." или "откл.", которые могут быть интерпретированы как 1 и 0.
Соответствия между различными часто используемыми системами счисления представлены в таблице ниже.
Десятичная цифра |
Шестнадцате |
Двоичный |
Десятичная |
Шестнадцатерич |
Двоичный |
|
ричная цифра |
эквивалент |
цифра |
ная цифра |
эквивалент |
|
|
|
|
|
|
0 |
0 |
0000 |
8 |
8 |
1000 |
|
|
|
|
|
|
1 |
1 |
0001 |
9 |
9 |
1001 |
|
|
|
|
|
|
2 |
2 |
0010 |
10 |
А |
1010 |
|
|
|
|
|
|
3 |
3 |
0011 |
11 |
В |
1011 |
|
|
|
|
|
|