Перевод из десятичной в произвольную позиционную систему счисления




Системы счисления

Система счисления – это способ записи чисел с помощью заданного набора символов, называемых цифрами.

Системы счисления подразделяются на позиционные и непозиционные.

В непозиционных системах счисления вес цифры не зависит от позиции (разряда), которую она занимает в числе. Примером непозиционной системы счисления является римская система счисления.

В позиционных системах счисления вес каждой цифры изменяется в зависимости от ее позиции в последовательности цифр, изображающих число.

Каждая позиционная система счисления определяется некоторым числом b > 1, называемым основанием системы счисления. В процессе счета b единиц в каждом разряде объединяется в одну единицу следующего по старшинству разряда. Система счисления с основанием b также называется b -ичной. Для записи числа в b -ичной системе счисления требуется b цифр. Например, для записи числа в 10-тичной системе счисления требуется 10 цифр: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9.

Целое число в b -ичной систем счисления представляется в виде полинома с основанием b:

,

где – целые числа, удовлетворяющие неравенству .

Запись числа x образуется из последовательности коэффициентов этого полинома:

.

Например, десятичное число 35710 есть краткая запись полинома

.

Подстрочный индекс обозначает основание системы счисления. Читается так: три сотни, пять десятков и семь единиц.

Тоже число в восьмеричной системе счисления означает

.

Наиболее употребимыми позиционными системами счисления являются двоичная, восьмеричная, десятичная, шестнадцатеричная и шестидесятеричная (для измерения времени и углов).

Двоичная система счисления используется для представления данных в компьютере. Она наиболее удобна, поскольку компьютеры проектируются на основе электронных элементов, имеющих два устойчивых состояния.

В 16-ричной системе счисления в качестве цифр используются арабские цифры
0, 1, 2, 3, 4, 5, 6, 7, 8, 9. В качестве недостающих цифр используются буквы A, B, C, D, E, F, имеющие следующие значения:

A – 10

B – 11

C – 12

D – 13

E – 14

F – 15

Примеры 16-ричных чисел: A2CD, 71F8, EEEF.

Для записи правильных дробей используются отрицательные степени основания. Например, число 0,24710 есть краткая запись следующего выражения:

.

Число 0,2478 есть краткая запись следующего выражения:

.

Число 0,1012 есть краткая запись следующего выражения:

.

Если число имеет целую и дробную части, в его записи используются положительные и отрицательные степени основания.

Например число 357,2478 является краткой записью следующего выражения:

.

Перевод из произвольной системы счисления в десятичную

Для перевода целого числа из произвольной системы счисления в десятичную надо преобразовать его запись в полином по соответствующему основанию и вычислить его значение.

Например, для перевода двоичного числа 110102 в десятичное, надо вычислить значение полинома

.

Переведем 16-ричное число 3A7F16 в десятичную систему:

.

Аналогичным образом выполняется перевод дробного числа в десятичную систему счисления.

 

Перевод из десятичной в произвольную позиционную систему счисления

Для перевода целых и дробных чисел используются разные алгоритмы.

Перевод целых чисел выполняется по следующему алгоритму.

1. Исходное целое число делится на основание системы счисления, в которую переводится (на 2 – при переводе в двоичную систему счисления или на 16 – при переводе в шестнадцатеричную). Получается частное и остаток.

2. Если полученное частное меньше основания системы счисления, в которую выполняется перевод, процесс деления прекращается, переходят к шагу 3. Иначе надо вернуться к шагу 1.

3. Последнее частное и полученные остатки, записанные в обратном порядке, дают результат перевода.

Пример 1. Выполнить перевод числа 1910 в двоичную систему счисления:

Таким образом, 1910 = 100112.

Пример 2. Выполнить перевод числа 12310 в шестнадцатеричную систему счисления:

 

Здесь остаток 11 преобразован в шестнадцатеричную цифру B.

Таким образом, 12310 = 7В16.

Правильные дроби переводятся из десятичной системы счисления в произвольную систему счисления по следующему алгоритму.

1. Исходная дробь умножается на основание системы счисления, в которую выполняется перевод.

2. В полученном произведении целая часть отбрасывается и повторяется шаг 1.

3. Умножения продолжается до тех пор, пока ни будет получен нулевой результат в дробной части произведения или требуемое количество цифр в результате.

4. Отброшенные целые части, записанные с помощью цифр соответствующей системы счисления, образуют результат перевода.

Пример 3. Выполнить перевод числа 0,847 в двоичную систему счисления. Перевод выполнить до четырех значащих цифр после запятой.

Имеем:

Таким образом, 0,84710 = 0,11012.

Процедура перевода прервана на четвертом шаге, поскольку получено требуемое число разрядов результата. Очевидно, это привело к потере ряда цифр.

Пример 4. Выполнить перевод числа 0,84710 в шестнадцатеричную систему счисления. Перевод выполнить до трех значащих цифр.

Имеем:

В данном примере процедура перевода также прервана.

Таким образом, 0,84710 = 0,D8D16.

При переводе десятичного числа, имеющего целую и дробную часть, отдельно выполняется перевод целой и дробной части.

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2016-08-08 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: