Меня немного смутила фраза "1 байт - восемь состояний". Я подумал, что можно технически в один байт зарезервировать восемь разных состояний, т.е. запомнить одно число в память, делать сдвиги, коньюкции и понимать какой оттенок у нашего числа (байта). Видимо, я просто запутался в формулировках.
А так, я прекрасно понял, что можно под каждый разряд выделить своё состояние, которое технически является одним битом. Но в этот же момент этот разряд хранится в байте, который хранится ещё где-то (в нашем случае - в объекте).
На выделенной строке в скриншоте - наш объект, хранящийся в памяти. Как видишь, их размер разный. 284 байт против 500 байт.
Ответ: Взял я это из кода.
Я очень не люблю, когда люди начинают растирать свои же негативные эмоции на других людей. У тебя не было никакой причины коммуницировать со мной, начиная с текста "как же с тобой тяжело" и т.п.
Если ты объяснил и я не понял, значит, нужно найти проблему и определиться, я не понял или это ты объяснил некорректно.
Я благодарен в целом, что ты ответил и помог мне понять один концепт и работу маскирования, но полноценного ответа ты так и не дал. С твоей стороны полноценным ответом могло быть направление меня на источник (почитать) или развёрнутый, с минимумом профессионального сленга ответ (также с понятным повествованием и хорошими абстракциями, отдельных среде программистов).
Developer, так там же разные числа... Я чего-то не понимаю?
0b1
0b10
0b100
0b1000
Это же всё разные числа, к которым мы приклеили значения нужные нам. Мы храним булевые значения в разных числах, которые отражают разное состояние. Не?
Немного не понял условные конструкции в конце твоего ответа.
Спасибо за объяснение концепта со сдвигом единицы. Но, тогда мой вопрос по битовой карте некорректный. И как я предполагал изначально (да и по самому куску кода видно) - мы не включаем/выключаем определённый бит у числа, а используем разные числа и ссылаемся на состояние касательно того самого числа, которое у нас идёт в память (а в памяти их много, также, как состояний). Тогда, тут особо нет смысла использовать побитовые операции... Мне так кажется, во всяком случае. Ведь, почему бы просто не хранить состояния в любом пришедшем в голову числе, объекте или картинке, и определять смешивание состояний другими числами, объектами или картинками... Концепт останется одинаковым.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
При запуске на подсистеме - всё работает.