Pole bitowe

Z Wikipedii, wolnej encyklopedii

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 | edytuj kod]

  • 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 | edytuj kod]

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 | edytuj kod]

Przypisy[edytuj | edytuj kod]

  1. C++ Bit Fields. [dostęp 2012-07-16]. (ang.).
  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.