- •Введение
- •Системы счисления и формы представления чисел
- •Позиционные системы счисления
- •Системы счисления, используемые при работе с ЭВМ
- •Лабораторная работа 1
- •Перевод чисел из одной системы счисления в другую
- •Задания к лабораторной работе 1
- •Лабораторная работа 2
- •Арифметические действия в системах счисления
- •Двоичная арифметика
- •Восьмеричная арифметика
- •Шестнадцатеричная арифметика
- •Задания к лабораторной работе 2
- •Вопросы самоконтроля
- •Библиографический список
8
Лабораторная работа 1
Перевод чисел из одной системы счисления в другую
Задача перевода из одной системы счисления в другую часто встречается при программировании и особенно часто – при программировании на языке Ассемблера, например, при определении адреса ячейки памяти, для получения двоичного или шестнадцатеричного эквивалента десятичного числа. Отдельные стандартные процедуры языков программирования Паскаль, Бейсик, HTML и Си требуют задания параметров в шестнадцатеричной системе счисления. Отыскать неисправность в ЭВМ практически невозможно без представлений о двоичной системе счисления.
Сначала рассмотрим перевод из двоичной системы счисления в шестнадцатеричную и восьмеричную и наоборот. Это наиболее просто в связи с тем, что
16= 24 , а 8 = 23.
Правило 1
1.1.Для перевода шестнадцатеричного числа в двоичное надо каждую цифру исходного шестнадцатеричного числа заменить четырёхразрядным двоичным числом. Незначащие нули отбросить.
1.2.Для перевода восьмеричного числа в двоичное надо каждую цифру исходного восьмеричного числа заменить трёхразрядным двоичным числом. Незначащие нули отбросить.
Примеры:
1. Перевести число 7D2,ЕН в двоичную систему счисления.
Решение:
Буква Н означает, что число 7D2,Е представлено в шестнадцатеричной системе счисления. Используем правило перевода.
Переводимое |
число |
|
Результат |
||
|
|
|
|
|
|
(7 |
D |
2, |
E)16 |
(11111010010,1110)2 |
|
0111 1101 0010 , 1110 |
|
|
Отмеченные крайние нули следует отбросить.
2. Перевести число 305,416 в двоичную систему счисления.
9
305,416 = 0011 0000 0101,01002 = 1100000101,012.
3. Перевести число 127,328 в двоичную систему счисления.
Решение:
Переводимое |
|
число |
|
Результат |
||
|
|
|
|
|
|
|
(1 |
2 |
7, |
3 |
2)8 |
1010111,01101 2 |
|
001 010 111 011 010 |
|
|
Отмеченные крайние нули следует отбросить.
Правило 2
2.1.Для перевода числа из двоичной системы счисления в шестнадцатеричную надо число разбить на четвёрки влево и вправо от запятой. Крайние группы, если необходимо, дополнить нулями. Затем каждую четвёрку двоичных цифр заменить соответствующей шестнадцатеричной цифрой.
2.2.Для перевода числа из двоичной системы счисления в восьмеричную надо число разбить на тройки влево и вправо от запятой. Крайние группы, если необходимо, дополнить нулями. Затем каждую тройку двоичных цифр заменить соответствующей восьмеричной цифрой.
Примеры:
1. Перевести число 10111110001,001В в шестнадцатеричную систему счисления. Решение:
Буква В означает, что число представлено в двоичной системе счисления. Используем правило перевода.
Переводимое число |
|
Результат |
|||
|
|
|
|||
(0101 1111 0 001, 0010)2 |
|
(5F1,2)16 |
|||
5 |
F |
1, |
2 |
|
|
2.Перевести число 1010111,11011012 в шестнадцатеричную систему счисления.
1010111,11011012 =0101 0111,1101 10102 = 57,DA16.
3.Перевести число 1010111,11011012 в восьмеричную систему счисления.
10
|
Переводимое число |
|
|
Результат |
|||
|
|
|
|
||||
(001 |
010 111, 110 110 100)2 |
(127,664)8 |
|||||
1 |
2 |
7, |
6 |
6 |
4 |
|
|
Правило 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; в
11
минус втором разряде С-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 |
в двоичную, восьмеричную и шестнадцатеричную |
||||||||||||||||||
системы счисления. |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
31 |
|
|
|
|
|
|
|
|
|
31 |
|
|
|
|
16 |
|
|||
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
30 |
15 |
|
|
2 |
|
|
|
|
24 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
3 |
16 |
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
14 |
|
|
7 |
|
2 |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
7 |
|
15 |
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
6 |
|
|
|
|
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
1 |
|
|
|
|
3 |
|
|
|
|
|
|
|
|
↓ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
2 |
|
|
1 |
|
|
|
|
|
F |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1