- •Дисциплина: «Информационные технологии»
- •Тема: «Кодирование числовой информации.
- •Принял:
- •Белгород 2014
- •Содержание
- •Цель работы
- •Список индивидуальных заданий
- •Задание 1.
- •Вариант 9.
- •Выполнение работы
- •Задание 2.
- •Задание 3
- •Задание 4
- •Задание 5
- •Задание 6
- •Заключение
- •Список используемой литературы
Вариант 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.
Для данной программы вычислить итоговый результат (в десятичной системе счисления) со всеми расчетами в двоичной системе счисления. Задание выполнить в двух вариантах, в зависимости от типа переменных:
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
