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

Битовый массив (значения принимаются битами, а адресация по номеру бита) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ GDI+ или Direct2D? http://www.cyberforum.ru/cpp-beginners/thread114993.html
Всем привет! возможно звучит немного наивно, но хотелось бы узнать какую графическую технологию можно использовать, чтобы написать игру по типу тех, что выпускают Alawar и подобное... вот сомневаюсь...
C++ Ошибка линковки Всем привет! Пишу программу на С++ в среде VS2008, чудеса происходят, в ходе редактирования кода и его дополнения, соответственно приходится перекомпилировать проект, и через раз появляется следующая... http://www.cyberforum.ru/cpp-beginners/thread114981.html
C++ Подпрограммы
Найти среднее арифметическое количеств положительных, кратных 5 элементов массивов А, В, С. При помощи функций... Что тут нужно изменить?...
C++ при вычислении выражении - одно значение,а в калькуляторе другое!
есть,самое простое выражение: 21/5*3 но на калькуляторе будет - 21/5=4.2(логично?) и умноженное 4.2*3=12.6(и не поспоришь!) так вот - а это же самое выражение, только в консоли: float k; ...
C++ Ошибка при выводе функции на экран http://www.cyberforum.ru/cpp-beginners/thread114952.html
Всем привет. Делаю задачи для контрольной, не могу понять из-за чего вылазит ошибка. Посмотрите пожалуйста. Ошибка вылазит в задаче номер 3
C++ Консольный компилятор C/C++. Привет всем !!! Интересует такое - есть ли где ниебуть такой компилятор чтобы писать исходный текст в блокнотике а потом с помощью ВАТ файла скомпилировать его??? Плиз очень нужно!!! подробнее

Показать сообщение отдельно
Day
1158 / 963 / 57
Регистрация: 29.10.2009
Сообщений: 1,385
10.04.2010, 15:27
Не очень понял, что с этими битами надо делать.
Самое простейшее - извлечение и установка - вот.
C
1
2
3
4
5
6
7
8
9
10
11
12
char x[N];  // N - максимальное кол-во битов / 8
GetBit(int i)  // Взять i-тый бит
{
  int k = i / 8;
  return (x[k] >> (i%8));
}
SetBit(int i, bool b)  // Установить i-тый бит
{
   if (GetBit(i)==b) return;  // Бит уже такой, как надо
   char c = x[i/8];
   x[i/8] = c ^ (1<<(i%8));  // Меняем нужный бит
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru