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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.94
Гость
Сообщений: n/a
#1

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

16.09.2007, 15:50. Просмотров 2007. Ответов 2
Метки нет (Все метки)

То есть как принять значиния от этих чекбоксов я уже сделал (они записываются в отдельные переменные для каждого чекбокса) у меня вопрос как теперь из этих переменных байт сделать..То есть предполагается, что ети переменные (и чекбоксы тоже)-ето биты от 0 до 7
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.09.2007, 15:50     Как построить байт, если биты устанавливаются/сбрасываются через чекбоксы?
Посмотрите здесь:

Посчитать в файле количество нулевых байт и различных байт C++
... В четных байтах числа в двоичной системе переместить нулевые биты в старшие биты, а в нечетных байтах – в младшие ... C++
C++ не получаеться преобразовать 8 ьит в 1 байт (биты в десятичное число)
Байт в биты в файле C++
C++ функция изменяет старший байт числа на заданное значение не изменяя младший байт
C++ Если число четное, то заменить его младший байт нулями
C++ Закодировать файл. Взять 7 байт. Первый бит каждого байта переместить в 8 байт
Обращение к элементам массива через биты некоторого числа C++
Передача массива через write: Передается только 8 байт C++
C++ Как вывести биты в обратном порядке? С++
C++ Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат
Как получить биты переменной? C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8510 / 2177 / 61
Регистрация: 07.03.2007
Сообщений: 10,854
Завершенные тесты: 1
19.09.2007, 12:22     Как построить байт, если биты устанавливаются/сбрасываются через чекбоксы? #2
ну так это делается очень просто: распредели чекбоксы по битам и прибавляй в результирующий байт с возведением в соответствующую биту степень двойки, обратная лперация идет исключающим или с соответствущей степенью двойки
bor.is
0 / 0 / 1
Регистрация: 29.08.2007
Сообщений: 9
20.09.2007, 13:12     Как построить байт, если биты устанавливаются/сбрасываются через чекбоксы? #3
ну например есть 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;
Yandex
Объявления
20.09.2007, 13:12     Как построить байт, если биты устанавливаются/сбрасываются через чекбоксы?
Ответ Создать тему
Опции темы

Текущее время: 07:31. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru