2 / 2 / 0
Регистрация: 28.11.2012
Сообщений: 39
1

Битовые операции

29.09.2013, 23:31. Показов 2545. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Составить две программы, первая из которых вводит составные части структуры данных, и формирует из них заданную упакованную структуру. Вторая программа вводит упакованную структуру как 16-ричной число и выводит значения отдельных ее составных частей.
Слово состояния канала в вычислительной системе представляется в виде:
розряду 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Значення N N N N E C C C C C C C C C 0 P


де:
N..N - Номер канала
E - Признак ошибки
C..C - код причини преривания
P - признак завершения программы в канале




Вот у меня есть пример похожей задачи, но я не могу его подогнать к своему.=(

Слово состояния устройства в системе ввода-вывода представляется в виде:
разряда 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00
Значение C C C C C 0 F B N N N N N N N N
*
где
C.. C - код состояния
F - признак ошибки (1/0)
B - признак занятости (0/1)
N.. N - количество байт, переданных в последний операции

Программа ввода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <stdio.h>
int main(void) {
 char c; /* код состояния */
 char f; /* признак ошибки */
 char b; /* признак занятости */
 unsigned char n; /* количество байт */
 unsigned int UnitStateWord; /* слово состояния */
  /* ввод составных частей */
  printf("Введите код состояния (0 - 31) >");
  scanf("%d",&c);
  printf("Введите признак ошибки (0 / 1) >");
  scanf("%d",&f);
  printf("Введите признак занятости (0 / 1) >");
  scanf("%d",&b);
  printf("Введите количество переданных байт (0 - 255) >");
  scanf("%d",&n);
  /* формирование упакованного кода */
  UnitStateWord=((unsigned int)c&0x1F)<<11;
  UnitStateWord|=((unsigned int)f&1)<<9;
  UnitStateWord|=((unsigned int)b&1)<<8;
  UnitStateWord|=n&0xFF;
  /* вывод результата */
  printf("\nСлово состояния устройства = %04x\n",
     UnitStateWord);
  return 0;
}
Программа вывода:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <stdio.h>
int main(void) {
 char c; /* код состояния */
 char f; /* признак ошибки */
 char b; /* признак занятости */
 unsigned char n; /* количество байт */
 unsigned int UnitStateWord; /* слово состояния */
  /* ввод слова состояния устройства */
  printf("Введите cлово состояния устройства \n");
  printf("(16-ричное число от 0 до 0xFFFF) >");
  scanf("%x",&UnitStateWord);
  /* Выделение составных частей */
  c=(UnitStateWord>>11)&0x1F;
  f=(UnitStateWord>>9)&1;
  b=(UnitStateWord>>8)&1;
  n=UnitStateWord&0xFF;
  /* вывод результатов */
  putchar('\n');
  printf("Код состояния                  = %d\n",c);
  printf("Признак ошибки             = %d\n",f);
  printf("Признак занятости          = %d\n",b);
  printf("Количество переданных байт = %d\n",n);
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.09.2013, 23:31
Ответы с готовыми решениями:

Битовые операции, битовые поля.
Здравствуйте! Еслть 4 диапазона чисел: 0-100, 0-100, 0-6000, 0-3. Сделать в виде битовых операций....

Битовые последовательности и битовые операции
Вычислить сумму по модулю 2 всех бит в позициях, номер которых кратен 2^k. (1, 2, 4, 8, 16, 32). ...

Используя только битовые операции и операции арифметического сложения и вычитания, вычислите число
Даны числа x и y. Используя только битовые операции и операции арифметического сложения и...

Битовые операции и операции смещения языка С
Доброго времени суток господа,помогите пожалуйста.Есть 2 кода к задаче,первый работает...

0
29.09.2013, 23:31
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.09.2013, 23:31
Помогаю со студенческими работами здесь

Битовые операции
#include&lt;iostream&gt; #include&lt;climits&gt; int main() { unsigned int a = UINT_MAX; unsigned short...

Битовые операции
С помощью битовых операций выести на экран значение к-ого спарва бита. Помогите пожалуйста!что-то...

Битовые операции
Помогите пожалуйста решить задачки на с++ 1.Написать программу, которая позволит ввести целое...

Битовые операции
Здраствуйте, помогите, пожалуйста! Надо написать три функции, используя только битовые (для...

Битовые операции
Вот такая вот лаба на С, уже как не думал ну не могу решить я ее. Прошу помочь, прикрепил полное...

битовые операции
как из 0001 0000 тоесть в dec '8' сделать 0000 0001 в dec '1'?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru