Zdravim,
máme úkol na procvičení zkusit a potřeboval bych poradit.Zadání:
Začal jsem využitím bit. pole pro uložení datumu,kde den zabírá 5 bitů,měsíc 4 bity a rok 7 bitu.
Pro uloženi roku je jen 7 bitu, což je pro nejvyšší uložené číslo 2^7 = 127.Tak k uloženému roku přičítám konstantu 1990.
Zde je zatím můj dosavadní kód:
// encode_date.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
typedef struct {
unsigned den :5;
unsigned mesic :4;
unsigned rok :7;
} DATUM;
DATUM dnes;
short encode_date(char day, char month, short year) {
dnes.den = day;
dnes.mesic = month;
dnes.rok = year - 1990;
return 0;
}
void decode_date(short date, int * day, int * month, int * year) {
}
int _tmain(int argc, _TCHAR* argv[])
{
encode_date(18,6,2013);
printf("%d", dnes.rok + 1990);
return 0;
}
Moc nechápu co má vracet short encode_date ? a jak kdyžtak dekodovat potom to datum.
Předem děkuji za rady.