Skocz do zawartości

Recommended Posts

Napisano

Zmienna typu bool zajmuje 1 bit w pamięci, więc 8 takich zmiennych to 1 bajt.

cout << sizeof (bool [8])

Powyższe polecenie wyświetli 8, zamiast 1, tak jakby bool zajmowało tyle samo miejsca w pamięci co char. Jak zrobić, żeby bool zajmował tyle ile trzeba?

Napisano

Niestety, zmienna typu bool zajmuje przynajmniej jeden bajt - nie ma fizycznej możliwości reprezentacji jakiegokolwiek typu o liczbie bitów mniejszej niż osiem.
Ja myślałem już nad tym "marnotrawstwem pamięci" (chociaż w dzisiejszych czasach, przy możliwościach dzisiejszych komputerów nikt na to nie zwraca uwagi) i jedyne co mi przyszło do głowy, to stworzenie sobie własnego typu (klasy) TablicaBitów. Trzeba wtedy przeciążyć sobie operator indeksowania (operator[]) i kontrolować wielkość tej tablicy. Mimo wszystko jednak jednoelementowa tablica bitów będzie zajmowała tyle samo co ośmioelementowa (1 bajt), a dziewięcioelementowa tyle samo co szesnasto... itd. :?

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gość
Odpowiedz...

×   Wkleiłeś zawartość bez formatowania.   Usuń formatowanie

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Utwórz nowe...