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

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

Войти
Регистрация
Восстановить пароль
 
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
#1

Запись последних восьми бит - C++

26.04.2014, 18:41. Просмотров 256. Ответов 8
Метки нет (Все метки)

Добрый вечер! Подскажите, пожалуйста, как правильно записать 8-мь последних бит переменной типа int в переменную массива QByteArray, которая занимает 1 байт. Что-то никакой простой алгоритм в голову не приходит, кроме как проверять значения каждого бита переменной побитовым умножением и уже непосредственно записывать 1 или 0 в однобайтовую переменную. Но этот подход очень долгий.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2014, 18:41
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Запись последних восьми бит (C++):

Использовать битове операций для обнуления всех бит, кроме последних четырёх - C++
В задании имеется ввиду последние 4 бита старшего разряда. Как мне кажется, нужно воспользоваться оператором сдвига. Но вот как выяснить на...

Бит 8, младший и старший бит (по книге) - C++
Добрый день. Вот читаю книгу, и не пойму элементарной на первый взгляд вещи. Как понять следующие предложения: 1) Если бит...

переход с 32 бит на 64 бит - C++
Здравствуйте. Пробую на builder 10 перевести проект с 32 на 64 бит. Возникают странные ошибки: template <typename T> class DOT { ...

Задача о восьми ферзях - C++
Есть у меня массив из 8 случайных чисел от 0 до 7. Мне нужно найти количество атакующих друг друга пар ферзей. Моя функция вроде считает,...

НОД восьми чисел - C++
Ребята, помогите написать программу, которая будет находить НОД уже известных восьми чисел. Заранее благодарю:)

Ошибка в задаче о восьми ферзях - C++
Суть задачи заключается в том, что нужно суметь расставить на шахматной доске (8 х 8) восемь ферзей так, чтобы они не находились под боем...

8
zss
Модератор
Эксперт С++
6629 / 6191 / 2048
Регистрация: 18.12.2011
Сообщений: 16,140
Завершенные тесты: 1
26.04.2014, 18:45 #2
Лучший ответ Сообщение было отмечено автором темы, экспертом или модератором как ответ
C++
1
2
3
4
5
6
7
8
9
10
11
12
union A
{
   int n;
   char c[4];
};
int main()
{
   A a;
   a.n=12345678;
...
   QbyteArray[i]=a.c[3];
}
0
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
26.04.2014, 18:53  [ТС] #3
zss, спасибо, а можете сказать смысловую нагрузку вот этой строки
C++ (Qt)
1
QbyteArray=a.c[3];
0
zss
Модератор
Эксперт С++
6629 / 6191 / 2048
Регистрация: 18.12.2011
Сообщений: 16,140
Завершенные тесты: 1
26.04.2014, 18:57 #4
Я не знаю структуру Вашего массива QbyteArray.
Если это массив символов, то QbyteArray[i]=a.c[3];
Запишет в i-ый элемент массива QbyteArray 4-й байт из переменной a.
0
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
26.04.2014, 19:00  [ТС] #5
zss, дак QbyteArray это не имя массива, это тип данных
0
zss
Модератор
Эксперт С++
6629 / 6191 / 2048
Регистрация: 18.12.2011
Сообщений: 16,140
Завершенные тесты: 1
26.04.2014, 19:03 #6
Ну тогда что-то типа
C++
1
2
3
QbyteArray  qq[N];
...
qq[i]=a.c[3];
1
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
26.04.2014, 19:09  [ТС] #7
zss, спасибо, я вроде понял, только a.c[3] даст нам старший байт, а мне надо a.c[0];
Хитро придумали, так бы циклом пилил.
0
zss
Модератор
Эксперт С++
6629 / 6191 / 2048
Регистрация: 18.12.2011
Сообщений: 16,140
Завершенные тесты: 1
26.04.2014, 19:19 #8
Младший байт можно гораздо проще
C++
1
2
3
    int n=0x01020304;
    char c;
    c=(char)n;
0
танкист34
-62 / 0 / 0
Регистрация: 15.03.2013
Сообщений: 328
26.04.2014, 19:24  [ТС] #9
zss, спасибо, я уже то заюзал, к тому же мне ещё и предпоследний понадобился.
0
26.04.2014, 19:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2014, 19:24
Привет! Вот еще темы с ответами:

Варианты размещения восьми ферзей на шахматной доске - C++
Само задание: Найти все варианты размещения восьми ферзей на шахматной доске таким образом, чтобы никакие две фигуры не размещались на...

Реализовать алгоритм всех возможных комбинаций восьми ферзей - C++
Доброго времени суток! Мне стыдно задавать такой вопрос, но всё же, как реализовать алгоритм всех возможных комбинаций восьми ферзей? ...

Найти наибольшее и наименьшее значение массива из восьми элементов - C++
Найти наибольшее и наименьшее значение массива из восьми элементов по 2 байта каждый. В регистре АХ должен содержаться наибольший элемент,...

Ввод с клавиатуры данных в массив, состоящий из восьми элементов типа TRAIN - C++
помогите пожалуйста, не получается сделать,туго с динамикой. • Описать структуру с именем TRAIN, содержащую следующие поля: • название...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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