Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Перевод чисел из одной системы счисления в другую
Задача перевода из одной системы счисления в другую часто встречается при программировании и особенно часто – при программировании на языке Ассемблера. Например, при определении адреса ячейки памяти, для получения двоичного или шестнадцатеричного эквивалента десятичного числа. Отдельные стандартные процедуры языков программирования Паскаль, Бейсик, HTML и Си требуют задания параметров в шестнадцатеричной системе счисления. Отыскать неисправность в ЭВМ практически невозможно без представлений о двоичной системе счисления. Сначала рассмотрим перевод из двоичной системы счисления в шестнадцатеричную и восьмеричную и наоборот. Это наиболее просто в связи с тем, что 16 = 24, а 8 = 23. Правило 1: 1.1. Для перевода шестнадцатеричного числа в двоичное надо каждую цифру исходного шестнадцатеричного числа заменить четырехразрядным двоичным числом. Незначащие нули отбросить. 1.2. Для перевода восьмеричного числа в двоичное надо каждую цифру исходного восьмеричного числа заменить трехразрядным двоичным числом. Незначащие нули отбросить. Примеры: 1) Перевести число 7D2, ЕН в двоичную систему счисления. Решение: Буква Н означает, что число 7D2, Е представлено в шестнадцатеричной системе счисления. Используем правило перевода. Отмеченные крайние нули следует отбросить. 2) Перевести число 305, 416 в двоичную систему счисления. 305, 416 = 0011 0000 0101, 01002 = 1100000101, 012 3) Перевести число 127, 328 в двоичную систему счисления. Решение: Отмеченные крайние нули следует отбросить.
Правило 2: 2.1. Для перевода числа из двоичной системы счисления в шестнадцатеричную надо число разбить на четверки влево и вправо от запятой. Крайние группы, если необходимо дополнить нулями. Затем каждую четверку двоичных цифр заменить соответствующей шестнадцатеричной цифрой. 2.2. Для перевода числа из двоичной системы счисления в восьмеричную надо число разбить на тройки влево и вправо от запятой. Крайние группы, если необходимо дополнить нулями. Затем каждую тройку двоичных цифр заменить соответствующей восьмеричной цифрой. Примеры: 1) Перевести число 10111110001, 001В в шестнадцатеричную систему счисления. Решение: Буква В означает, что число представлено в двоичной системе счисления. Используем правило перевода.
2) Перевести число 1010111, 11011012 в шестнадцатеричную систему счисления. 1010111, 11011012 =0101 0111, 1101 10102 = 57, DA16 3) Перевести число 1010111, 11011012 в восьмеричную систему счисления.
Правило 3: Задано число С, представленное в системе счисления с основанием S: C = Cn Cn-1 …C1 C0 C-1 C-m Нужно перевести его в h-систему, выполняя действия в новой системе счисления (в h-системе). Для этого нужно представить его в виде суммы степеней S: C = Cn Sn + Cn-1 Sn-1 +…+ C1 S1 + C0 S0 + C-1 S-1 +…+ C-m S-m, где основание S, коэффициенты С и номера разрядов i выражены в новой h-системе. Разряды нумеруются от запятой влево (0, 1, 2, и т.д.) и вправо (-1, -2 и т.д.). Примеры: 1) Перевести число 2Е5, А16 в десятичную систему счисления. В данном случае S = 16, но все расчеты производим в десятичной системе счисления. Номера разрядов: влево от запятой 0, 1, 2, вправо от запятой -1. Во втором разряде стоит коэффициент равен 2, т.е. С2 = 2; в первом разряде С1 = Е, что соответствует числу 14 в десятичной системе счисления; в нулевом разряде С0 = 5; в минус первом разряде С-1 = А, что соответствует числу 10 в десятичной системе счисления. Подставляем эти значения в формулу. 2Е5, А16 = 2 × 162 + 14 × 161 + 5 × 160 + 10 × 16-1 = 512 + 224 + 5 + 0, 625= = 741, 62510 2) Перевести число 5210 в двоичную систему счисления. В данном случае переводим число из системы с основанием 10, но все расчеты производим в двоичной системе счисления, следовательно, в двоичной системе число 10 соответствует числу 1010, т.е. S = 1010. В первом разряде коэффициент равен 5, что соответствует двоичному числу 101, т.е. С1 = 101; в нулевом разряде стоит коэффициент 2, что соответствует числу 10 в двоичной системе счисления, т.е. С0 = 10. 5210 = 101 × 10101 + 10 × 10100 = 110010 + 10 = 1101002 3) Перевести число 1101, 1012 в десятичную систему счисления. В данном случае S = 2, но все расчеты производим в десятичной системе счисления. Номера разрядов: влево от запятой 0, 1, 2, 3, вправо от запятой -1, 2, -3. В третьем разряде стоит коэффициент равен 1, т.е. С3 = 1; во втором разряде С2 = 1; в первом разряде С1 = 0; в нулевом разряде С0 = 1; в минус первом разряде С-1 = 1; в минус втором разряде С-2 = 0; в минус третьем разряде С-3 = 1. Подставляем эти значения в формулу. 1101, 1012 = 1 × 23 + 1 × 22 + 0 × 21 + 1 × 20 + 1 × 2-1 + 0 × 2-2 + 1 × 2-3 = = 8 + 4 + 1 + 0, 5 + 0, 125 = 13, 62510 4) Перевести число 127, 48 в десятичную систему счисления. В данном случае S = 8, но все расчеты производим в десятичной системе счисления. Номера разрядов: влево от запятой 0, 1, 2, вправо от запятой -1. Во втором разряде С2 = 1; в первом разряде С1 = 2; в нулевом разряде С0 = 7; в минус первом разряде С-1 = 4. Подставляем эти значения в формулу. 127, 48 = 1 × 82 + 2 × 81 + 7 × 80 + 4 × 8-1 = 64 + 16 + 7 + 0, 5 = 87, 510 Этот способ удобен при S< h и особенно для ручного перевода в десятичную систему счисления. Правило 4: Для перевода целого числа из S-системы в h-систему счисления в арифметике S-системы нужно последовательно делить это число и получающиеся частные на h до тех пор, пока частное не станет меньше h. Старшей цифрой в новой записи числа будет последнее частное, а следующие за ней цифры дают остатки, вписанные в последовательности, обратной их получению. Все вычисления производятся в старой S-системе. (При S< h прежде, чем записать число, надо получившиеся остатки переписать в цифры h-системы). Дробные числа наоборот умножаются на h до тех пор, пока не получится целое число. Примеры: 1) Перевести число 7510 в двоичную, восьмеричную и шестнадцатеричную системы счисления.
7010 = 10010112 = 1138 = 4В16. 2) Перевести 12, 37510 в двоичную, восьмеричную и шестнадцатеричную системы счисления. Решение: Целую и дробную часть переводим по-разному. Сначала переводим целую часть (делением на основание новой системы счисления).
1210 = 11002 = 148 = С16.
Таким образом, 12, 37510 = 1100, 0112 = 14, 38 = С, 816.
|