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) Запишем ответ, причѐм в мантиссу вписываем только еѐ дробную часть.
Знак |
Смещѐнный порядок |
Мантисса |
0 |
10000000111 |
10001101001010 ... 0 |
|
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 |
|
|