Pole bitowe

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj

Pole bitowe – konstrukcja w języku C oraz C++, deklarująca zmienną składową struktury lub klasy jako zmienną typu całkowitoliczbowego, zajmującą określoną liczbę bitów[1]. Wartość wyrażenia określającego długość pola musi być znana w momencie kompilacji. Pola bitowe można zastosować w celu optymalizacji (zmniejszenia) ilości zużycia pamięci. Należy pamiętać, że czas dostępu do pola bitowego jest dłuższy od czasu dostępu do zmiennej całkowitej. Podstawowym zastosowaniem pól bitowych jest obsługa urządzeń zewnętrznych[2] dostępnych przez porty wejścia/wyjścia lub przez wyróżniony obszar pamięci.

Przykład[edytuj | edytuj kod]

W poniższym przykładzie struktura Data definiuje trzy pola bitowe. Pole bitowe m_dzienTygodnia pozwala przechowywać liczby o wartościach od 0 do 7, ponieważ tylko te można zapisać na trzech bitach. Pole bitowe m_dzienMiesiaca pozwala przechowywać liczby o wartościach od 0 do 31, natomiast pole m_miesiac pozwala przechować liczby od 0 do 15.

struct Data
{
    unsigned short m_dzienTygodnia:3;
    unsigned short m_dzienMiesiaca:5;
    unsigned short m_miesiac:4;
};

Składnia definicji pola bitowego[edytuj | edytuj kod]

  • Pole bitowe może być jakiegokolwiek typu całkowitego – a więc znakowe, short, liczba całkowita, long – w obu wariantach: signed albo unsigned, także może być logiczne, a nawet enum.
  • Potem następuje nazwa tego pola.
  • Następnie dwukropek i liczba określająca, na ilu bitach ma być przechowywana w tym polu informacja.

Przypisy

  1. C++ Bit Fields (ang.). [dostęp 2012-07-16].
  2. Grębosz 1993 ↓, s. 317.

Bibliografia[edytuj | edytuj kod]

  • Jerzy Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo. Kraków: Oficyna Kallimach, 1993.

Zobacz też[edytuj | edytuj kod]