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