Программирование >>  Структурное программирование 

1 ... 327 328 329 [ 330 ] 331 332 333 ... 342


Г.1. Введение

Г.2. Сокращенная запись двоичных чисел в восьмеричной и шестнадцатеричной системах счисления

Г.З. Преобразование восьмеричных и шестнадцатеричных чисел в двоичные

Г.4. Преобразование двоичных, восьмеричных и шестнадцатеричных чисел в десятичные

Г.З. Преобразование десятичных чисел в двоичные, восьмеричные и шестнадцатеричные

Г.6. Представление отрицательных двоичных чисел: дополнение до двух

Резюме Терминология Упражнения для самопроверки Ответы на упражнения для самопроверки Упражнения

Г.1 Введение

в этом приложении мы поговорим об основных системах представления чисел, используемых программистами на С++, особенно теми из них, кто работает над проектами программного обеспечения, активно взаимодействующего с аппаратными средствами на машинном уровне . Такие проекты включают в себя: операционные системы, программное обеспечение работы в сети, компиляторы, системы управления базами данных и прикладные программы, от которых требуется высокая эффективность работы.

Когда в программе на С++ мы используем целое число типа 227 или -63, то предполагаем, что оно записано в десятичной системе счисления (с основанием 10). Цифрами в десятичной системе счисления являются О, 1, 2, 3, 4, 5, 6, 7, 8, и 9. Самая младшая цифра - О, а самая старшая цифра - 9; она на единицу меньше, чем 10, являющееся основанием системы счисления. Для внутреннего представления данных в компьютере используется двоичная система счисления (с основанием 2). Двоичная система счисления обходится только двумя цифрами, а именно, О и 1. Самая младшая цифра - О, а самая старшая цифра - 1; она на единицу меньше основания системы счисления 2.

Как мы увидим далее, двоичные числа намного длиннее их десятичных эквивалентов. Программистам, пишущим на ассемблере или на языках высокого уровня, которые, подобно С++, дают возможность работать и на машинном уровне , неудобно использовать двоичные числа. Они предпочитают две другие системы счисления: вось-меричную систему счисления (с основанием 8) и шестнадцатеричную систему счисления (с основанием 16), завоевавшие себе популярность прежде всего возможностью сокращенной записи двоичного числа.

План



В восьмеричной системе счисления используются цифры от О до 7. Поскольку и в двоичной системе счисления, и в восьмеричной системе применяется меньшее количество цифр, чем в десятичной системе счисления, то в качестве цифр в этих системах просто используются соответствующие цифры десятичной системы.

В шестнадцатеричной системе счисления возникает проблема, связанная с тем, что для записи чисел требуется уже шестнадцать цифр: самая младшая цифра - О, а самая старшая цифра должна иметь десятичное значение 15 (на единицу меньшее, чем основание системы 16). В соответствии с принятым соглашением, для представления шестнадцатеричных цифр, соответствующих десятичным значениям от 10 до 15, используются символы от А до F. Таким образом в шестнадцатеричной записи мы можем встретить числа типа 876, состоящие исключительно из цифр десятичной системы счисления, и числа типа 8A55F, состоящие из цифр и букв, и числа вида FFE, состоящих исключительно из букв. Иногда, попадаются шестнадцатеричные числа типа FACE или FEED, имеющие второй смысл (в переводе ЛИЦО и ПИЩА), что кажется странным для некоторых программистов, привыкших работать с десятичными числами.

Каждая из перечисленных систем счисления использует позиционную запись, когда каждая позиция, в которой записывается цифра, имеет свое позиционное значение. Например, про десятичное число 937 мы говорим, что цифра 7 записана в позиции единиц, цифра 3 записана в позиции десятков и 9 - в позиции сотен (цифры 9, 3 и 7, при этом, называются числовыми значениями). Обратите внимание, что значения этих позиций равны основанию системы счисления (в данном случае - 10), возведенному в степень, начинающуюся с нулевой и увеличивающуюся на 1 при перемещении в числе на одну позицию влево (рис. Г.З).

Для более длинных десятичных чисел, чем то что мы взяли в качестве примера, следующими позициями слева будут позиции: тысяч (10 в степени 3), десятков тысяч (10 в степени 4), сотен тысяч (10 в степени 5), миллионов (10 в степени 6), десятков миллионов (10 в степени 7) и так далее.

Двоичные цифры

Восьмеричные цифры

Десятичные цифры

Шестнадцатеричные цифры

А (десятичное значение 10)

В (десятичное значение 11)

С (десятичное значение 12)

D (десятичное значение 13)

Е (десятичное значение 14)

F (десятичное значение 15)

Рис. Г.1. Цифры двоичной, восьмеричной, десятичной и шестнадцатеричной сиаем счисления



Атрибут

Двоичная система

Восьмеричная система

Десятичная система

Шестнадцатеричная система

Основание

Младшая цифра

Старшая цифра

Рис. Г.2. Сравнение двоичной, восьмеричной, десятичной и шестнадцатеричной систем

счисления

Значения позиций в десятичной системе счисления

Десятичная цифра

Название позиции

Сотни

Десятки

Единицы

Позиционное значение

Значение позиции как степень основания (10)

Рис. Г.З. Значения позиций в десятичной системе счисления

Про двоичное число 101 мы говорим, что его самая правая единица записана в позиции единиц, О записан в позиции двоек, а самая левая единица находится в позиции четверок. Обратите внимание, что каждая из этих позиций имеет значение, равное степени основания системы счисления (в данном случае 2), и что значение степени начинается со значения О и увеличивается на 1 при перемещении в числе на одну позицию влево (рис. Г.4).

Значения позиций в двоичной системе счисления

Двоичная цифра

Название позиции

Четверки

Двойки

Единицы

Позиционное значение

Значение позиции как степень основания (2)

Рис. Г.4. Значения позиций в двоичной системе счисления

Для более длинных двоичных чисел следующими позициями слева будут позиция восьми (2 в степени 3), позиция шестнадцати (2 в степени 4), позиция тридцати двух (2 в степени 5), позиция шестидесяти четырех (2 в степени 6) и так далее.

В восьмеричном числе 425 цифра 5 записана в позиции единиц, цифра 2 записана в позиции восьми и 4 - в позиции шестидесяти четырех. Заметьте, что значение каждой из этих позиций равно степени основания системы счисления (в этом случае равной 8) и что показатель степени изменяется от О, увеличиваясь на 1 при передвижении в числе на одну позицию влево (рис. Г.5).

Для больших по величине восьмеричных чисел, следующие позиции слева будут позиции пятисот двенадцати (8 в степени 3), четырех тысяч девяноста шести (8 в степени 4), тридцати двух тысяч семисот шестидесяти восьми (8 в степени 5) и так далее.

В шестнадцатеричном числе 3DA цифра А записана в позиции единиц, цифра D записана в позиции шестнадцати и 3 - в позиции двухсот пятидесяти шести. Заметим, что значение каждой из этих позиций равно основанию системы счисления (в данном случае 16), возведенному в степень, показатель которой при продвижении в числе на одну позицию влево увеличивается на 1, а начинается со значения О (рис. Г.6).



1 ... 327 328 329 [ 330 ] 331 332 333 ... 342

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика