[C++] Zadanie z Symfonii

0

Witam moglibyście mnie naprowadzić trochę jak to rozwiązać ? Oto treść :

Napisz prosty program ktory zapyta uzytkownika o date urodzenia w formie DDMMRRRR gdzie dd dzien mm miesiac i rrrr rok
przyjac date jako wartosc typu long

no to jest oczywiste jak zrobic, ale dalej

A nastepnie wypisac na ekranie w postaci dziesiatkowej nastepujace jej fragmenty

  • fragment o nazwie niebieskie na ktory skladaja sie bity 0,1,2,3,4,5
    -fragment o nazwie zielony na ktory skladaja sie bity od 10 do 14 (włącznie)

W programie nie mozna ani razu uzyc operacji bitowej koniunkcji ani przesuniecia bitowego. Jesli posluzysz sie unia to niech NIE bedzie ona anonimowa.

0

To czasem nie jest w rozdziale na temat pól bitowych i unii?...

#include <iostream>
using namespace std;

int main(int argc, char * argv[])
{
    cout<<"Podaj date urodzenia w formacie ddmmrrrr\n";
    long data;
    cin>>data;

    struct rozklad
    {
int niebieski :
        6,
:
        3,
zielony :
        5,
:
        1,
czerwony :
        3;
    };

    union unia
    {
        long zrodlo;
        rozklad wynik;
    };

    unia dane;

    dane.zrodlo=data;
    cout<<"\nNiebieski: "<<dane.wynik.niebieski<<"\n";
    cout<<"\nZielony: "<<dane.wynik.zielony<<"\n";
    cout<<"\nCzerwony: "<<dane.wynik.czerwony<<"\n";
    return 0;
}

0

No jest i ciekawe dlaczego użyć nie można ...

0

Nie rozumiem za bardzo co za structura robi

0

To wróc do rozdziału o polach bitowych i uniach i przeczytaj go ze zrozumieniem.

0

To dzieli na bity jakby ? Jak Pole bitowe np unsigned a :5 itd...

1 użytkowników online, w tym zalogowanych: 0, gości: 1