
- •1. Алгоритмы перевода чисел
- •1.1. Перевод десятичного числа в систему счисления с основанием q и обратно
- •2. Арифметические операции в позиционных системах счисления
- •3. Компьютерное представление чисел
- •1. Алгоритмы перевода чисел
- •1.1 Алгоритм перевода десятичного числа в систему счисления с основанием q и обратно
- •1.2. Алгоритм перевода чисел из двоичной системы счисления в систему счисления с основанием 2n
- •1.3. Алгоритм перевода чисел из систем счисления с основанием 2n в двоичную систему
- •2.1. Арифметические операции в двоичной системе счисления
- •2.2. Арифметические операции в восьмеричной системе счисления
- •3. Компьютерное представление чисел
- •3.1. Представление целых чисел в формате с фиксированной запятой
- •3.2. Представление вещественных чисел в формате с плавающей запятой
- •Если обозначить машинный порядок Мq, а математический q, то связь между ними выразится формулой:
- •Задачи и упражнения
Если обозначить машинный порядок Мq, а математический q, то связь между ними выразится формулой:
Мq = q + 64
Итак, машинный порядок смещен относительно математического на 64 единицы и имеет только положительные значения. Полученная формула записана в десятичной системе счисления. В двоичной системе счисления формула имеет вид:
Мq = q + 10000002
При выполнении вычислений с плавающей точкой процессор это смещение учитывает.
Таким образом, из вышесказанного вытекает следующий алгоритм для получения представления действительного числа в памяти ЭВМ:
1) Перевести модуль данного числа в двоичную систему счисления;
2) Записать полученное двоичное число в нормализованном виде;
3) Определить машинный порядок с учетом смещения;
4) Учитывая знак заданного числа (0 – положительное; 1 – отрицательное), записать его представление в памяти ЭВМ.
Например, запишем внутреннее представление числа 139,76 в форме с плавающей точкой в 4-х байтовой ячейке:
1) Переведем десятичное 139,76 и запишем его 24-значащими цифрами:
139,7610 = 10001011,11000010100011112
2) Запишем полученное двоичное число в форме нормализованного двоичного числа с плавающей точкой:
10001011,11000010100011112 = 0,1000101111000010100011112 х101000,
где 0,1000101111000010100011112 – мантисса;
10 – основание системы счисления (210=102);
1000 – порядок (810=10002).
3) Определим машинный порядок:
Mq2 = 1000 + 1000000 = 1001000
4) Запишем представление числа в ячейке памяти:
01001000 |
10001011 |
11000010 |
10001111 |
Для того чтобы получить внутренне представление отрицательного числа -139,7610 достаточно в полученном выше представлении заменить в разряде знака числа 0 на 1. Никакого инвертирования, как для отрицательных целых чисел, здесь не происходит.
Задачи и упражнения
1. Переведите целые числа из десятичной системы счисления в двоичную, восьмеричную и шестнадцатеричную системы счисления:
а) 231 б) 564 в) 1023 г) 4096.
2. Переведите в десятичную систему счисления
а) двоичные числа: 10011101, 1100101001110, 1011110010101111;
б) восьмеричные числа: 321, 2367, 53621;
в) шестнадцатеричные числа: 3А, В14, 4А4С, А55DD.
3. Переведите десятичные дроби в двоичную, восьмеричную и шестнадцатеричную системы счисления: 0,5; 0,125; 0,654.
4. Переведите смешанные десятичные числа в двоичную, восьмеричную и шестнадцатеричную системы счисления, оставив пять знаков в дробной части нового числа:21,5; 432,54; 678,333.
5. Сложите, вычтите, умножьте и разделите двоичные числа 110101012 и 11102.
6. Выполните арифметические операции:
а) 1100000011,0112 х 101010111,12
б) 1510,28 – 1230,548
в) 3B3,816+38B,416
7. Получите двоичную форму внутреннего представления целых чисел 1689 и -1689 в 2-х байтовой ячейке.
8. Получите двоичную форму внутреннего представления действительных чисел 224,25 и -224,25 в формате с плавающей точкой в 4-х байтовой ячейке.
9. Запишите в десятичной системе счисления целое число, если его дополнительный код 1000000110101110.