Смекни!
smekni.com

Примеры выполнения заданий по программированию

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