Лабораторная работа 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 – количество разрядов сдвига