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) zajętości pamięci. Należy jednak mieć na uwadze fakt, ż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 określony obszar pamięci.

Składnia definicji pola bitowego edytuj

  • Pole bitowe może być jakiegokolwiek typu całkowitego, a więc znakowe, short, int, long – w obu wariantach: signed albo unsigned – może być także logiczne, a nawet wyliczeniowe.
  • Następnie umieszcza się nazwę tego pola.
  • Za nim dwukropek i liczbę określającą na ilu bitach ma być przechowywana w tym polu informacja.

Przykład edytuj

W poniższym przykładzie struktura Data definiuje trzy pola bitowe:

  • pole m_dzienTygodnia pozwala przechowywać liczby o wartościach od 0 do 7, ponieważ tylko te można zapisać na trzech bitach.
  • pole m_dzienMiesiaca pozwala przechowywać liczby o wartościach od 0 do 31,
  • 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;
};

Zobacz też edytuj

Przypisy edytuj

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

Bibliografia edytuj

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