#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++ тебе как рыбке зонтик. .
Вместо задания тестового примера в тексте программы можно сделать и ввод произвольного байта, но, похоже, по задания это не требуется, да и при произвольном байте легко может получиться восьмой день недели пятнадцатого месяца , тогда надо вводить проверку на корректность вводимых данных.. . Впрочем, как я уже заметил, ничего такого в задании нет.