Pole bitowe
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
- Pole bitowe może być jakiegokolwiek typu całkowitego, a więc znakowe,
short,int,long– w obu wariantach:signedalbounsigned– 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
W poniższym przykładzie struktura Data definiuje trzy pola bitowe:
- pole
m_dzienTygodniapozwala przechowywać liczby o wartościach od 0 do 7, ponieważ tylko te można zapisać na trzech bitach. - pole
m_dzienMiesiacapozwala przechowywać liczby o wartościach od 0 do 31, - pole
m_miesiacpozwala 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ż
Przypisy
- ↑ C++ Bit Fields. [dostęp 2012-07-16]. (ang.).
- ↑ Grębosz 1993 ↓, s. 317.
Bibliografia
- Jerzy Grębosz: Symfonia C++. Programowanie w języku C++ orientowane obiektowo. Kraków: Oficyna Kallimach, 1993.
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.