Скачиваний:
16
Добавлен:
16.01.2016
Размер:
596.47 Кб
Скачать

Вариант 9.

Задание 1

begin

a := 13;

a := not a and (a - $13);

b := $11;

rez := a - b;

writeln(rez);

end.

Задание 2:

1018 : 1012 + 1019(10110 1018) + 10116

Задание 3:

А = 100,3, В = 201,48.

Задание 4:

А = 46 (a: shortint)

а) на 4 бита влево,

б) на 5 бит вправо,

в) на 4 бита вправо.

Задание 5:

а) проверить, присутствует ли в данном байте целиком битовая последовательность «111111»,

б) заменить в данном байте отдельные биты так, чтобы данный байт удовлетворял битовой маске «??10??10».

Задание 6:

IP: 148.200.199.250,

маска подсети: 255.255.255.240.

  1. Выполнение работы

    1. Задание 1.

Для данной программы вычислить итоговый результат (в десятичной системе счисления) со всеми расчетами в двоичной системе счисления. Задание выполнить в двух вариантах, в зависимости от типа переменных:

Var

a, b, rez : shortint;

Var

a, b, rez : byte;

begin

a := 13;

a := not a and (a - $13);

b := $11;

rez := a - b;

writeln(rez);

end.

Вариант 1.

При типе данных shortint число должно входить в диапазон от -128 до 127 и занимать 1 байт памяти.

Рассмотрим часть кода нашей программы:

a := 13;

a := not a and (a - $13);

Оператор not делает из числа 13 число -14. Рассмотрим, как выполняется данное преобразование:

1310=11012

Дополним получившееся число до 8 бит:

000011012

Оператор not делает следующую операцию с числом:

not 000011012=111100102=-1410

Рассмотрим оставшийся код:

b := $11;

rez := a - b;

В этой части выполняется вычитание из десятичного числа -14 шестнадцатеричного числа 11.

Переведем оба числа в двоичную сс. В результате чего получим:

1116=0000100012

-1410=111100102

Выполним вычитание и переведем результат в десятичную систему счисления:

111100102-100012=111010012=-3110

Вариант 2.

При типе данных byte число может принимать значения в диапазоне от 0 до 255 и занимать 1 байт памяти.

Так же рассмотрим фрагмент нашего кода:

a := 13;

a := not a and (a - $13);

При выполнении данного фрагмента происходит преобразование десятичного числа 13 в число 242. Рассмотрим подробнее донный процесс.

Тип данных byte это тип без знака, а, следовательно, число не может принимать отрицательных значений в отличии от типа shortint. И поэтому после оператора not происходит не преобразование данного числа в отрицательное, а как бы его циклический перенос в начало диапазона значений, но так как число не может быть больше 255 то происходит вычитание из максимального значения (255) исходного числа (в нашем случае это 13), в результате чего мы получаем значение 242.

Переведем получившееся число в двоичную систему:

24210=111100102

Рассмотрим оставшийся код:

b := $11;

rez := a - b;

В этой части выполняется вычитание из десятичного числа 242 шестнадцатеричного числа 11.

Переведем оба числа в двоичную сс. В результате чего получим:

1116=0000100012

24210=111100102

Выполним вычитание и переведем результат в десятичную систему счисления:

111100102-100012=111010012=22510

    1. Задание 2.

Вычислите значение указанного выражения. Вычисления и ответ представить в двоичной системе счисления.

1018 : 1012 + 1019(10110 1018) + 10116

Для выполнения данного задания переведем все числа в двоичную систему счисления:

1018 = 10000012

1012 = 1012

1019 = 10100102

10110 = 11001012

1018 = 10000012

10116 = 1000000012

Выполним все действия в нужной очередности.

  1. 11001012-10000012=1001002

  2. 10100102*1001002=1011100010002

  3. 10000012 / 1012=11012

  4. 11012+1011100010002=1011100101012

  5. 1011100101012+1000000012=1100100010012

Соседние файлы в предмете Алгоритмические языки и основы программирования