Форум программистов, компьютерный форум CyberForum.ru

Двоичная обработка данных - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Регулировка скорости http://www.cyberforum.ru/cpp-beginners/thread1490709.html
Надо составить прогу, которая позволяет текст, содержащийся в файле, воспроизвести сигналами азбуки Морзе. При этом текст должен посимвольно выводиться на экран. Предусмотреть возможность плавной регулировки скорости воспроизведения. Справился, наконец-то, не без помощи, с выводом из файла на экран, все отлично работает. Но вот скорость регулировки как сделать не знаю. Нужна ваша помощь,...
C++ Найти разницу между минимальным и максимальным из набора чисел Дано 20 вещественных чисел. Найти разницу между минимальным и максимальным из них. http://www.cyberforum.ru/cpp-beginners/thread1490704.html
C++ Копировать несколько символов из одной строки в другую
Нужна функция которая копирует символы из переменной в переменную начиная например от 5 символа и заканчивая 9
Выводятся на печать смайлики вместо элементов строки C++
#include <stdio.h> #define MAXLINE 1000 int getline(char line, int maxline); void copy(char to, char from); /* печать самой длинной строки */ main() {
C++ Игра "Однорукий бандит". Кольцевая очередь. Двусвязный список http://www.cyberforum.ru/cpp-beginners/thread1490692.html
Здраствуйте. Задание: "Создать игру "Однорукий бандит". При нажатии кнопки Enter происходит "вращение" трех барабанов (количество вращений каждого из них выбирается случайно), на которых изображены разые значки, и, если выпадает определенная комбинация, то игрок получает какой-то выигрыш." Проблемы: - Пытался сделать именно значки, а не цифры. Не прокатило. - Иногда ошибка компиляции...
C++ _kbhit() как удалить символ, когда нажимаем клавишу? #include <iostream> #include <conio.h> using namespace std; void main() { char point = '*'; do { if (_kbhit()) { подробнее

Показать сообщение отдельно
TonyHopkiens
0 / 0 / 0
Регистрация: 26.05.2014
Сообщений: 4

Двоичная обработка данных - C++

30.06.2015, 19:53. Просмотров 232. Ответов 7
Метки (Все метки)

Есть такая программа по двоичной обработке массива. Я не совсем понимаю, как здесь менять биты местами, к примеру наложением маски (0х00х0хххххххххх) поменять местами 1 и 3 бит с 4 и 6 битами соответственно. Можно даже на примере одного числа, не массива.

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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# include <stdio.h> 
# include <string.h> 
# include <stdlib.h>
void tobit(int);
  char s[17]={"0000000000000000"};   int b,a1;
main ()
{
 int a[5]={1528,5184,10822,3555,1234},*sum=NULL;   unsigned char j;
  sum=(int*) malloc (2);//выделяем два байта памяти
  if (!sum)
    {printf("no memory");
     exit(0);
    }
  printf("исходный массив \n");
    for (j=0;j<5;j++)
     { printf("%u   ",a[j]);
      *sum=*sum+a[j]; } 
printf("сумма %d\n",*sum);
sum=NULL;
printf("обработка \n");
  for (j=0;j<5;j++)   { a1=a[j];  tobit(a[j]);
  
a1=a[j]&19455;
  b=a[j]>>15;
  b=b<<12;
  
a1=a1|b;
  b=a[j]>>12;
  b=b<<15;
  
a1=a1|b;
  b=a[j]&8192;
  b=b>>3;
  
a1=a1|b;
  b=a[j]&1024;
  b=b<<3;
  
a1=a1|b;
  *sum=*sum+a1;
  tobit(a1);
  } printf("новая сумма %d\n",*sum);
  scanf("d");
  *sum=NULL;
}
void tobit(int a)
{ char i;
  printf("%d  ",a);
  for (i=0;i<16;i++)
   { b=a1&32768;
     if (!b) s[i]='0';
      else s[i]='1';
     a1=a1<<1;
   }
  puts(s);
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru