ТВ
Татьяна Власенкова

битовые поля с++ в чем ошибка?

#include
#include
using namespace std;

int main (){
union
{
unsigned mouth:4; // Месяц, 4 бита
unsigned parity:1; // Четность, 1 бит
unsigned dayOfWeek:3; // День недели
} sourceChar;

cout<<"mouth="<

Же
Женя

а тип? )
unsigned int mouth:4;

Ел
Елена

#include
using namespace std;
int main (){
struct stru{
unsigned month:4;
unsigned parity:1;
unsigned dayOfWeek:3; };
union uni{unsigned char c; stru s;}u;
u.c=0xC9; cout<<"0xC9(16)=11001001(2)=6 0 9"<< endl;
cout<<"month="<< u.s.month<< endl;
cout<<"parity="<< u.s.parity<< endl;
cout<<"dayOfWeek="<< u.s.dayOfWeek<< endl;
cin.get();}

Спасибо за mouth вместо month - веселая опечатка 😉
Надеюсь, понятно. В C++ есть структуры с битовыми полями, а union позволяет считать одну и ту же память, например, и битовой структурой, и памятью, в которой размещены биты переменной типа char.
Впрочем, это лишь одно из средств работы с битами в C++, и не самое удобное, работать с частями байта можно и другими способами. Все это интересно для тех, кому действительно придется работать с C++, но если ты не учишься на программиста, то c++ тебе как рыбке зонтик. .

Вместо задания тестового примера в тексте программы можно сделать и ввод произвольного байта, но, похоже, по задания это не требуется, да и при произвольном байте легко может получиться восьмой день недели пятнадцатого месяца 😉, тогда надо вводить проверку на корректность вводимых данных.. . Впрочем, как я уже заметил, ничего такого в задании нет.

Похожие вопросы
Каким образом можно реализовать битовый сдвиг влево для длинной арифметики? Чтобы было быстро)
какой комп лучше? 32-битовый или 64-битовый? и ваще что это такое?
проблема текста А. Битова?
c++ битовые операции
Здравствуйте! Не могу понять логику битовых операций. Помогите пожалуйста!!!
С++ битовые операции
Поле объекта не обнаружено (Номенклатура) . Подскажите, где допустил ошибку?!
какова битовая глубина цветов
Можно ли в С++ индексировать битовое поле? Как?
Помогите решить задачу на битовый сдвиг для С++