1. Переведите данное число из десятичной системы счисления в двоично-десятичную.
В двоично-десятичном представлении каждая цифра числа кодируется по отдельности четырьмя битами.
2. Переведите данное число из двоично-десятичной системы счисления в десятичную.
Так как в двоично-десятичном представлении каждая цифра числа кодируется по отдельности четырьмя битами, то исходное число разбиваем на группы по 4 цифры (бита) и переводим каждую такую группу в одну десятичную цифру.
3. Зашифруйте данный текст, используя таблицу ASCII-кодов.
Коды больших английских букв: 065 (A) – 090 (Z)
Коды строчных английских букв: 097 (a) – 122 (z)
Коды больших русских букв: 168 (Ё), 192(А) – 223 (Я)
Коды строчных русских букв: 184 (ѐ), 224 (а) – 255 (я)
Коды арабских цифр: 048 (0) – 057 (9)
Код пробела – 032
В задании следует обращать внимание на регистр букв (большие / строчные).
4. Запишите прямой, обратный и дополнительный код числа, интерпретируя его как восьмибитовое целое без знака и со знаком.
Прямой, обратный и дополнительный коды положительного числа совпадают с его двоичным представлением. А для отрицательного числа нужно воспользоваться соответствующим алгоритмом (см. в методичке).
Целые числа хранятся в памяти ЭВМ в ячейках размером 8, 16, 32 или 64 бита, в зависимости от величины данного числа. Если для представления числа вашего варианта не хватает восьми бит, следует использовать 16 (или больше, если не хватает и этого).
При выполнении задания можно пользоваться калькулятором.
5. Запишите в десятичной системе счисления целое число, если дан его дополнительный код.
Чтобы получить исходное десятичное число из его дополнительного кода, нужно воспользоваться соответствующим алгоритмом кодирования в обратном порядке (при этом можно пользоваться калькулятором).
Если в старшем (самом левом) разряде единица, то закодировано отрицательное число, следовательно, пользуемся алгоритмом для отрицательных чисел:
a) Из двоичного представления вычесть единицу.
b) Инвертировать биты (заменить единицы нулями, а нули – единицами).
c) Перевести в десятичную систему счисления.
d) Записать ответ (отрицательное число).
Если же в старшем (самом левом) разряде ноль, то закодировано положительное число, следовательно, пользуемся алгоритмом для положительных чисел:
a) Перевести в десятичную систему счисления.
b) Записать ответ (положительное число).
Примеры выполнения задания:
5) дополнительный код 1110101101100010 В старшем разряде единица, значит, закодировано отрицательное число. Воспользуемся соответствующим алгоритмом: a) 1110101101100010(2) – 1(2) = 1110101101100001(2) b) После инвертирования 0001010010011110(2) c) 1010010011110(2) = 5278(10) Ответ: –5278(10) |
5) дополнительный код 0110101101100010
В старшем разряде ноль, значит, закодировано положительное число.
Воспользуемся соответствующим алгоритмом:
0110101101100010(2) = 27490(10)
Ответ: 27490 (10)
6. Запишите код действительного числа, интерпретируя его как величину типа Double.
Для выполнения этого задания нужно использовать алгоритм кодирования действительных чисел, который рассмотрен в методичке. При выполнении задания можно пользоваться калькулятором.
Примеры выполнения задания:
5) 397,15625 Воспользуемся алгоритмом для кодирования действительного числа: a) 397,15625(10) = 110001101,00101(2) b) Нормализуем мантиссу: 110001101,00101(2) = 1,1000110100101(2) * 28 (умножаем на 2 в степени 8, так как сдвинули запятую на 8 разрядов) М = 1,1000110100101(2) - нормализованная мантисса Р = 8 - порядок c) Прибавляем к порядку смещение. Для типа double смещение = 1023. Рсмещѐнный = 8 + 1023 = 1031(10) = 10000000111(2) d) Так как исходное число положительное, то представление знака = 0. e) Запишем ответ, причѐм в мантиссу вписываем только еѐ дробную часть. |
5) –397,15625
Воспользуемся алгоритмом для кодирования действительного числа:
a) Переводим модуль числа в двоичную систему:
|–397,15625(10)| = 397,15625(10) = 110001101,00101(2)
b) Нормализуем мантиссу:
110001101,00101(2) = 1,1000110100101(2) * 28
(умножаем на 2 в степени 8, так как сдвинули запятую на 8 разрядов)
М = 1,1000110100101(2) - нормализованная мантисса
Р = 8 - порядок
c) Прибавляем к порядку смещение. Для типа double смещение = 1023.
Рсмещѐнный = 8 + 1023 = 1031(10) = 10000000111(2)
d) Так как исходное число отрицательное, то представление знака = 1.
e) Запишем ответ, причѐм в мантиссу вписываем только еѐ дробную часть.
Знак | Смещѐнный порядок | Мантисса |
1 | 10000000111 | 10001101001010 ... 0 |