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

Упаковка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Посмотрите код http://www.cyberforum.ru/cpp-beginners/thread228478.html
Всем доброго времени суток. Вот написал програмку, которая считает сумму элементов массива. Помогите написать её через svitch.Заранее спасибо. #include <iostream> #include <conio.h> using...
C++ Слова-анаграммы Для заданного с клавиатуры слова построить все его анаграммы, т.е. слова (возможно бессмысленные), состоящие из всех букв исходного слова, но расположенных в произвольном порядке. Хотя бы... http://www.cyberforum.ru/cpp-beginners/thread228475.html
C++ Строка матрицы с наименьшей суммой элементов.
Подскажите как в С++ найти строку матрицы с минимальной суммой элементов и вычеркнуть ее?
C++ Реализация стека
вот такие ошибки при реализации: stack.h(26) : error C2953: 'Stack' : class template has already been defined liststack.h(10) : error C2955: 'Stack' : use of class template requires template...
C++ 2D Game http://www.cyberforum.ru/cpp-beginners/thread228444.html
Вот корявая, но "сделанная" (помогали) ИГРА! И движок (по урокам) скинул. http://www.cyberforum.ru/attachment.php?attachmentid=58377&stc=1&d=1294935054 ...
C++ Сижу на лабораторной по классам Подскажите Создать класс для работы со строками. В классе перегрузить оператор += для сложения строк. Память под строки отводить динамически. Использовать конструктор с параметрами, конструктор... подробнее

Показать сообщение отдельно
barlog
2 / 2 / 0
Регистрация: 03.11.2009
Сообщений: 227

Упаковка - C++

14.01.2011, 10:25. Просмотров 722. Ответов 0
Метки (Все метки)

Решить задачу упаковки, если числа массива могут принимать следующие значения: 0, 1, 2, 3;
Пусть по условию задачи известно, что числа массива находятся в диапазоне от 0 до 3, т. е. каждое число занимает 2 бита. Надо обработать 24 таких чисел. Нет типа данных для хранения двух битов. В каждом элементе массива типа unsigned short размером два байта (16 битов) можно разместить 16/2=8 чисел из указанного диапазона. Поэтому для хранения 20 таких чисел понадобится массив из 24/8=3 элементов.

Если честно,не очень понимаю что делать..обьясните пожалуйста...

Добавлено через 2 минуты
И в то же время чуть ниже задачи написано....

C++
1
2
3
4
5
6
7
8
9
randomize();
  unsigned short num, r=0;
   for (int j=1; j<=8; j++)
   {  r<<=2;                                 // или  r=r<<2;
      num=random(4);
      cout<<num<<"  ";
      r |= num;                                // или r+= num; 
  }
    printf(" \ n % x   % d",r,  r);
Так как после сдвига влево ячейки r два последних бита будут нулевыми, а в переменной num ненулевые только два последних бита, то r = r | num и r = r+num ( r |= num и r += num ) выполняются одинаково.
В функции вывода printf формат %x используется для вывода целого числа в шестнадцатеричной системе счисления.




Разве это и не есть решение?!!!???

Добавлено через 23 секунды
C++
1
2
3
4
5
6
7
8
9
CPPrandomize();
unsigned short num, r=0;
for (int j=1; j<=8; j++)
{ r<<=2; // или r=r<<2;
num=random(4);
cout<<num<<" ";
r |= num; // или r+= num; 
}
printf(" \ n % x % d",r, r);
Добавлено через 4 часа 33 минуты
Ребята,обьясните пожалуйста хоть задание...не пойму что делать...и в инете найти не могу((

Добавлено через 9 часов 28 минут
Не ну в этих прграммах так и делается...даются числа...потом их упаковывают в одно....ну...это же и есть задание!...не правда ль?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru