Лабораторная работа 2. Битовые операции.

advertisement
Лабораторная работа 2. Битовые операции.
Варианты заданий:
1
Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Поле управления диспетчером кадра в протоколе управления логическим каналом имеет
формат:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
1 0 C C 0 A A 0 N N N N N N N P
Где:
C..C – управляющий код
A..A – идентификатор команды
N..N – номер последовательности
P – признак запроса или завершения (0/1)
2
Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Информация о критической ошибке на диске представляется в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
O A A R R R 0 1 X D D D D D D D
Где:
О – тип операции: чтение (0) / запись (1)
AA – код области диска
RRR – код операции, выполняемой при ошибке
X – признак защищенной области диска
D..D – номер диска
3
Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Дескриптор сегмента для системы виртуальной памяти представляется в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
1 1 F
F
F
F
F 0 R W 0 L L L L L
Где:
F..F – номер блока, с которого начинается сегмент
R – флаг доступности сегмента для чтения (0/1)
W – флаг доступности сегмента для записи (0/1)
L..L – размер сегмента в блоках
4
Составьте программу, выводящую на экран битовое представление числа, используя битовые
операции. Число имеет тип unsigned char и вводится пользователем с клавиатуры.
Пример:
Введенное число: 157
Вывод программы: 10011101
5
Напишите программу, возвращающую значение входной переменной x, в которой n бит,
начиная с р-й позиции (счет идет со старшего разряда (слева)), заменены на n правых
разрядов из y. Значения переменных x, n, p, y имеют тип unsigned char.
Пример:
X = 125 (011 11101b)
P = 3;
N = 4;
Y = 186 (101 1101 0b)
Вывод: 123 (011 1101 1b)
6
Составьте программу, которая циклически сдвигает введенное пользователем число m (тип
unsigned int) влево на n разрядов. Значения m и n вводятся пользователем с клавиатуры.
Выведите полученное число на экран.
7
Дано целое число A (тип unsigned int) , натуральные числа p и n (тип unsigned int). Напишите
программу, выводяющую на экран число, состоящее только из n бит числа A, начиная с
позиции p.
Значения A, p и n вводятся с клавиатуры.
Пример:
Введенное число: A = 229 (1110 0101), p = 5, n = 3
Вывод программы: 4 (100)
8
Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Идентификатор мобильного телефона для станции представлен в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
P P P A A A A 0 X 0 B B B V E E
Где:
РРР – мощность сигнала
A…A – рабочая группа устройства
X – признак блокировки устройства
BBB – уровень заряда батареи
V – признак поддержки видеосвязи
EE – тип сотовой связи (GSM/EDGE/3G/LTE)
9
Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Слово состояния канала в вычислительной системе представляется в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
N N N 0 E
0 0 P C C C C C C 0 0
Где:
N..N - номер канала
E - признак ошибки
C..C - код причины прерывания
P - признак завершения программы в канале
10 Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Элемент списка безопасности объекта в вычислительной системе представляется в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
0 U U U U U 0 0 R W E X 0 0 0 1
Где:
U..U – идентификатор пользователя
R – флаг, определяющий право чтения
W – флаг, определяющий право записи
E – флаг, определяющий право выполнения программного кода
X – флаг явного запрета доступа
11 Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Формат представления текущей даты в некоторых системных структурах имеет вид:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
D D D D D 1 M M M M Y Y Y Y Y Y
Где:
D..D – день
M..M – месяц
Y..Y - год после 1980
12 Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Блок управления буфером кеша в вычислительной системе представляется в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
S
S
S
0 D 0 F P X B B B B B B B
Где:
SSS – код системной области
D – признак «dirty» буфера
F - признак свободного буфера
P – признак специального буфера
X – признак невалидного блока
B..B – номер блока, который отражен в буфере
13 Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Слово состояние оборудования для вычислительной системы представлется в виде:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
P P P 0 F
F
0 H H H 0 S S 0 V V
Где:
РРР – количество принтеров
FF – количество гибких дисков
H..H – тип жесткого диска
SS – тип операционной системы
VV – тип видеоадаптера
14 Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Формат представления текущего времени в некоторых системных структурах имеет вид:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
S
S
S
S
S
M M M M M M H H H H H
Где:
S..S – число секунд, деленное на 2
M..M – минуты
H..H – часы
15 Составить две программы (функции), первая из которых вводит составные части структуры
данных, приведенной ниже, и формирует из них заданную упакованную структуру (тип
unsigned int). Вторая программа вводит упакованную структуру как 16-ричное число и
выводит значения отдельных ее составных частей.
Формат команды сдвига в вычислительной системе имеет вид:
№ разряда 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Значение
1 0 1 1 T
T D 0 0 N N N N N N N
Где:
TT – тип сдвига
D – направление сдвига
N..N – количество разрядов сдвига
Download