Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






 

Задача перевода из одной системы счисления в другую часто встречается при программировании и особенно часто – при программировании на языке Ассемблера. Например, при определении адреса ячейки памяти, для получения двоичного или шестнадцатеричного эквивалента десятичного числа. Отдельные стандартные процедуры языков программирования Паскаль, Бейсик, 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 в двоичную, восьмеричную и шестнадцатеричную системы счисления.

  2             8       16      
74   2         72   8   64      
  36   2         8            
    18   2                    
      8   2           В        
        4                      
          2                    
                               

7010 = 10010112 = 1138 = 4В16.

2) Перевести 12, 37510 в двоичную, восьмеричную и шестнадцатеричную системы счисления.

Решение:

Целую и дробную часть переводим по-разному. Сначала переводим целую часть (делением на основание новой системы счисления).

    2    
  12   2  
    6    
      2  
         

1210 = 11002 = 148 = С16.

 

  375 × 2     375 × 8     375 × 16
  75 × 2            
  5 × 2            
               

 

Таким образом, 12, 37510 = 1100, 0112 = 14, 38 = С, 816.

 







© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.