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

Как построить байт, если биты устанавливаются/сбрасываются через чекбоксы? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Целые числа и расположение их в памяти http://www.cyberforum.ru/cpp-beginners/thread2943.html
Наткнулся тут на один интересный момент. Допустим у нас есть переменная - слово (WORD), равная, например, 45221. Всегда считал, что числа располагаются в памяти от старшего бита к младшему, в сторону...
C++ Файлы последовательного доступа Помогите решить задачу. 7. записать в файл out.txt последовательного доступа N действительных чисел, введенных с клавиатуры. Подсчитать среднее арифметическое чисел этого файла и записать... http://www.cyberforum.ru/cpp-beginners/thread2928.html
Дописать фаил C++
Помогите новичку. Есть фаил: FK|2005.08|СЭД|1.21.X.13|| FROM|5600с**а21.03.2007|1| TO|||14650|| RR||188||9500||А.П. Щербина|Н.В. Котов|Начальник отделения|Гончарова С.В.|0|...
typedef обьекта C++
столкнулся с проблемой - не могу использовать публичные задефиненые типы из класса #include <algorithm> class tscls { public: typedef std::pair<int, int> somtyp; }; int main () { ...
C++ Каждую секунду менять значения матрицы http://www.cyberforum.ru/cpp-beginners/thread2846.html
Нужен код программы,которая показывает матрицу 3*3,где каждую секунду случайно меняются её значения.Нужно чтобы программа не выводила каждый раз матрицу с новыми значениями,а меняла значения в одной...
C++ C++ Помогите, курсовая горит! Помогите, пожалуйста, если кто может! Есть две задачи по курсовой,не могу сообразить что там нужно делать:confused: 1 Заполнить матрицу случайными числами. Разместить на главной диагонали суммы... подробнее

Показать сообщение отдельно
bor.is
0 / 0 / 1
Регистрация: 29.08.2007
Сообщений: 9
20.09.2007, 13:12
ну например есть byte куда нужно занести биты и чекбоксы в массиве из восьми элементов box, если я правильно понял, то в чекбоксах значения 1 или 0
C++
1
2
3
4
5
6
int byte = 0;
int box[8] = { 0, 1, 1, 0, 0, 0, 0, 0 };
int it = 0;
do {
   byte |= box[it] << it;
} while (++it != 8);
так вот
  • eсли я хочу включить бит pos в байте byte я делаю
    C++
    1
    
    byte |= 1 << pos;
  • выключить бит pos в байте
    C++
    1
    
    byte[code]byte &= ~(1 << pos);
  • изменить бит числа byte в позиции pos на противоположный
    C++
    1
    
    byte ^= 1 << pos;
кто не знает:
& - побитовая конъюнкция (и)
| - побитовая дизъюнкция (или)
~ - побитовое отрицание (негатив)
<< - сдвиг влево числа слева на количество битов равное значению числа справа (новые биты устанавливаются в нуль)

P.S. с помощью этих операций очень удобно переводить чары в цифры и наоборот
если есть чар ch и нужно его перевести в число dig
C++
1
dig = ch & 0xf;
если нет уверенности что в ch точно цифра - это легко проверяется isdigit() из <cctype>
а из цифры dig в чар ch
C++
1
ch = dig | 0x30;
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.