16.05.2015 Views

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

Programowanie w C++ Borland Builder - Wyższa Szkoła Informatyki ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(czyli takie jak w przykładzie poniżej). Jeśli jakieś dane<br />

chcemy przechowywać w postaci pola bitowego, w deklaracji<br />

struktury sygnalizujemy to dwukropkiem. Stwarza to dwie istotne<br />

możliwości:<br />

* bardziej ekonomicznego wykorzystania pamięci;<br />

* łatwego dodatkowego zaszyfrowania danych.<br />

[P040.CPP]<br />

//Pamietaj o dolaczeniu plikow naglowkowych !<br />

int main()<br />

{<br />

struct USC {<br />

int Sex : 1;<br />

unsigned Wiek : 8;<br />

unsigned Dzieci : 4;<br />

unsigned Ktora : 3; } Facet;<br />

int bufor;<br />

clrscr();<br />

Facet.Sex = 0;<br />

printf("\n Ile ma lat ? : ");<br />

scanf("%d", &bufor); Facet.Wiek = bufor;<br />

printf("\n Ktore malzenstwo ? : ");<br />

scanf("%d", &bufor); Facet.Ktora = bufor;<br />

printf("\n Ile dzieci ? : ");<br />

scanf("%d", &bufor); Facet.Dzieci = bufor;<br />

printf("\n\n");<br />

if (Facet.Ktora) printf("Facet ma %d zone", Facet.Ktora);<br />

printf("\nPlec: Dzieci: Wiek (lat): \n\n");<br />

printf("%d\t%d\t%d", Facet.Sex, Facet.Dzieci, Facet.Wiek);<br />

getch();<br />

return 0;<br />

}<br />

Uruchom program i sprawdź co się stanie, jeśli Facet będzie miał<br />

np. 257 lat lub 123 żonę. Przekroczenie zadeklarowanego zakresu<br />

powoduje obcięcie części bitów.<br />

Aby uzyskać "wyrównanie" pola bitowego do początku słowa należy<br />

przed interesującym naspolem bitowym zdefiniować tzw. pole<br />

puste:<br />

* pole bitowe bez nazwy;<br />

* długość pola pustego powinna wynosić 0.<br />

Poniżej przedstawiam przykład pola bitowego zajmującego trzy<br />

kolejne słowa 16 bitowe. Dodanie pola pustego wymusza<br />

rozpoczęcie pola pole_IV od początku trzeciego słowa maszynowego<br />

(zakładamy, że pracujemy z komputerem 16 bitowym).<br />

- 144-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!