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: 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: |
|
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.
|
|
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: |
|
killjoy |
» 2015-01-12 18:21:26 |
|
jegor377 Temat założony przez niniejszego użytkownika |
» 2015-01-13 15:03:15 Thx bro, teraz jest elegancja francja! :D |
|
« 1 » |