Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zmienna 1 bitowa

Ostatnio zmodyfikowano 2015-01-13 15:03
Autor Wiadomość
jegor377
Temat założony przez niniejszego użytkownika
Zmienna 1 bitowa
» 2015-01-12 17:23:10
Jakieś trzy dni temu wpadłem na pomysł, by zrobić strukturę lub klasę przechowującą tylko tyle bitów ile potrzebuje dana zmienna, więc wymyśliłem, że zapiszę ją w systemie binarnym jako bool'e, ale niestety zmienna typu bool nie posiada tylko jednego bita, a aż 8 (1 bajt), więc pomysł odpadł. Potem zacząłem szukać na angielskich forach i znalazłem mnóstwo różnych informacji, z których zrozumiałem tylko tyle, że biblioteka boost daje możliwość stworzenia zmiennej o wadzę jednego bita, ale przeglądnąłem sobie dokumentacje boost'a i nic takiego nie znalazłem, więc szukałem dalej, aż napatoczyłem się na strukturę, która wyglądała tak:

C/C++
struct preferences {
    unsigned int likes_ice_cream: 1;
    unsigned int plays_golf: 1;
    unsigned int watches_tv: 1;
    unsigned int reads_books: 1;
};

struct preferences fred;

Od razu można zauważyć (domyślić się, że :1 oznacza ile bitów przydzielam zmiennej, więc spróbowałem zrobić to samo tylko, że bez struktury i kompilator wywala błąd... Generalnie chodzi mi o to, by się dowiedzieć jak stworzyć takiego bita bez struktury, dlaczego mogę przydzielić 1 bit tylko zmiennej w strukturze i generalnie jakieś źródło wiedzy na ten temat (1. tak wiem 1 temat = 1 pytanie, ale chodzi mi głównie o to najważniejsze, a jak ktoś ma ochotę to nie będę zły jak mi powie C: , 2. tak wiem, że mam korzystać z google, ale mój angielski jest trochę słaby (jestem dopiero w 1 gim i nawet nie pamiętam czasów xD), ale uważam, że skoro nauczyłem się cpp to to nie będzie problemem i na pewno jest na tej stronie ktoś kto mi to wytłumaczy. C:
P-124737
GolemXIV
» 2015-01-12 17:39:34
Nie możesz. Po co?
Komputer operuje na słowach, nie na bitach. program zmieniając wartość bitu musiałby dbać o to, żeby nie zmienić innych bitów (czyli innych zmiennych) zapisanych w tym samym słowie.
Generalnie by się dało, ale koszt czynności by był bardzo duży. Będą duże kłopoty z wielowątkowością, przydziałem pamięci (new, alloc), kontrolą kodu,
Jak pola bitowe są w ramach struktury (albo unii), to program zarządza zawartością całej tej struktury i w tym miejscu koszt nie jest aż taki duży.
P-124739
jegor377
Temat założony przez niniejszego użytkownika
» 2015-01-12 17:46:45
hmmm... a co te słowa? to są jakieś typy czy jak? Wiem tyle, że w assemblerze to są typy zmiennych (słowa np. db), ale nie wiem jak to działa i jeżeli byś był tak miły to proszę, abyś mi wytłumaczył. C:
P-124741
killjoy
» 2015-01-12 18:21:26
P-124745
jegor377
Temat założony przez niniejszego użytkownika
» 2015-01-13 15:03:15
Thx bro, teraz jest elegancja francja! :D
P-124797
« 1 »
  Strona 1 z 1