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

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

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

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

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

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

Байт в биты в файле - C++
Нашёл такую реализацию(вроде бы реализацию, я сам не знаю как она работает) превращения байта символа в биты. Но не могу понять, как собой...

не получаеться преобразовать 8 ьит в 1 байт (биты в десятичное число) - C++
вот код надо написать на с++ но решил на дельфи но он не работает что то как будто проскакивает последний разряд const _SIZE =...

Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат - C++
нужна помощь в битовых операциях.Ввести целое число A. Инвертировать все биты с 4 по 8, включая эти биты. Вывести результат.

Обращение к элементам массива через биты некоторого числа - C++
Пусть есть массив Mass из 10 элементов и число А = 510 = 0...0 01012. Мне надо обратиться к 0 и 2 элементам (или к 7 и 9 - это как...

Зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может больше 4 байт весить? - C++
Вот еще один вопрос зачем биты нужны это меньше байтов но int 32 бита но я не допер зачем это нужно это 4 байта то есть int не может...

Если число четное, то заменить его младший байт нулями - C++
Ввести последовательность из 8 целых чисел. Если число четное, то заменить его младший байт нулями, если нечетное, то заменить в его...

Передача массива через write: Передается только 8 байт - C++
Добрый день. Помогите пожалуйста, не понимаю, как передать заполненный двумерный динамический массив через функцию write. Что бы я не писал...

Как получить биты переменной? - C++
Есть ли какие-то встроенные средства, с помощью которых можно определить какие биты содержит в себе переменная? Потому что cout выводит уже...

Как вывести биты в обратном порядке? С++ - C++
Данные два 16-битных числа A (aa. .. a) и B (bb. .. b), случайным образом выбирается точка разрыва t и получаем 2 числа (С1 и С2): для...

функция изменяет старший байт числа на заданное значение не изменяя младший байт - C++
функция изменяет старший байт числа на заданное значение не изменяя младший байт. как можно проще


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Lord_Voodoo
Супер-модератор
8584 / 2184 / 61
Регистрация: 07.03.2007
Сообщений: 10,868
Завершенные тесты: 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;
Ответ Создать тему
Опции темы

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