это правильный способ "инвертировать" байт? (поразрядно НЕ) - PullRequest
1 голос
/ 12 марта 2019

У меня есть код для отображения, который, кажется, работает нормально.но при попытке инвертировать часть текста на дисплее (сделать белые пиксели черными, а черные пиксели белыми) у меня возникает проблема.дисплей срабатывает и вылетает.

Я сузил ошибку до этой инверсии, которую я делаю (возможно, не правильное слово, чтобы описать это?).Когда я удаляю его, он работает нормально.

Я думаю, что я делаю это правильно, и я не знаю, почему это может быть проблемой, но, похоже, ... Я делаю инверсию так: (в основном побитовое НЕ, я думаю, это называется)

variabel=~variabel;

(это правильно?!)

поэтому я пытаюсь сделать так, чтобы буквы ascii были противоположными: так, например:

11001000 will be:
00110111

или

10101111 would be:
01010000

К вашему сведению: я программирую в студии C. Atmel.Atmega 4809, дисплей SSD1305z, интерфейс SPI-simular

1 Ответ

2 голосов
/ 12 марта 2019

Побитовое НЕ (~) (также называемое дополнением Унарного) - правильный способ инвертировать все биты значения.

Вы также можете инвертировать биты, выполнив исключающее ИЛИ (^) со значением, которое содержит 1 s в битовой позиции, которую вы хотите инвертировать.Это особенно полезно, если вы хотите инвертировать только часть битов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...