Автор Денис задал вопрос в разделе Другие языки и технологии
PORTD|=0x02 PORTD&=0xFD объясните как так происходит что определенный бит устанавливается в 1 или 0 ? и получил лучший ответ
Ответ от
Дак тут всё просто.
PORTD |= 0x02; - это то же самое, что PORTD = PORTD | 0x02;
То есть проводим операцию побитового "или" между тем, что в порту имеется и 0x02. Побитовое - это значит каждый битик из PORTD складывается по "или" с битиком числа 0x02. А если ты в курсе, что такое операция "или", то знаешь, что она принимает истинное значение если хотя бы один из операндов равен "истине".
Например, в порту D уже лежит значение 0b10110001, то выполнив операцию PORTD |= 0x02 ты получишь следующее: 0b10110001 | 0b00000010 = 0b10110011. Как видишь, установился 1-й бит, а остальные не изменились. Ну или на пальцах:
1 OR 0 = 1
0 OR 0 = 0
1 OR 0 = 1
1 OR 0 = 1
0 OR 0 = 0
0 OR 0 = 0
0 OR 1 = 1
1 OR 0 = 1
Это мы рассмотрели установку определенного бита в "1". А как работает второе выражение, устанавливая определенные биты в "0" - попытайся подумать сам, помня, что операция "И" даёт "0" если хотя бы один из битов равен нулю.
Ну так возьми любой справочник и посмотри, что такое "битовые операции". И как именно работают с битами операции AND и OR.
Смотря как ты глубоко капаешь !
Если тебе интересна сама структура то тут все просто - представь транзистор - он может принимать два положения - замыкать цепь и размыкать - восемь транзисторов это один байт - один транзистор это один бит !
В коде выглядит так - 00000000 (1 байт - все транзисторы открытые) - предположим что мне нужно записать некие данные - я посылаю сигнал нужному транзистору и он закрывается (тем самым замыкает цепь)
в итоге комп считывает этот байт и после оприделяет что за значение в нем имелось в виду !
Теперь что бы записать нужный байт это хорошо показывает Матрицы которые нужны для расчета 3д графики (в играх) - Не буду обьяснять эта тема длинная - приведу проще пример !
Для таких вещей обычно создают макросы - со значениями от 0х00000001 и до 0х10000000 - то есть один бит двигается в лево - восемь макросов
Предположим тебе нужно в байте устоновить 3 - 5 и 8 бит в еденицу (я не буду приводить макросы а в место них подставлю ихние значения)
Так вот берешь свой байт
char bayt =0; // 0х00000000
и далее просто сплюсовываешь макросами те байты которые нужно устоновить в еденицу
bayt = 0x00100000 + 0x00001000 + 0x00000001 ;
Далее вступает правило сложение битов (ничего сложного - тот же метод что и в десятичной )
00100000+
00001000+
00000001=
00101001
вот так выстовляют нужный бит в 1 или 0 !
Оригенальное все просто !
как найти тексты песен pussycatdolls i hate this part
Вводишь в поисковик (Яндекс, Гугль и др. ) "тексты песен pussycat dolls i hate this part" тебе
подробнее...
скажите когда выдет Дьявол носит «Prada» 2
В своем недавнем интервью Энн Хэтэуэй призналась, что продолжения хитового фильма «Дьявол носит
подробнее...
Помогите найти текст песни или её перевод. Chris Cornel "Part of me". Chris Cornel "Part of me"
Little girl, I love when she talks to me
Got to smile when she walks that walk with me
I
подробнее...
San Juan, Puerto Rico это США? и где это на карте? а еще где South Carolina? тоже в США??
Остров Puerto Rico относится к группе Антильских островов, принадлежит США. Его столица - город San
подробнее...
разница во времени c Австралией. кто знает разницу во времени Москва - Perth (Австралия)
Разница конкретно с городом Перт (Perth), штат Западная Австралия - зимой 5 часов, летом 4 часа.
подробнее...
Кто- нибудь пользовался финским мылом PARDO для выведения пятен? Убирёт ли жирное пятно?
Любое мыло типа PARDO-это обыкновенное дешёвое хозяйственное мыло, изменили цвет (белое, синее) и
подробнее...
Помогите найти аккорды к песне IAMX - The stupid, the proud. Заранее спасибо!
IAMX - The stupid, the proud
Cm - Fm - G7 -- Cm - Fm - G7 - вступление
1.
подробнее...
в past simple. He...(decide)to take part in the competition.
в past simple будет:
He decided to take part in the
подробнее...
Что на испанском слэнге означает Perdita Durango?
Это название боевика (имя и фамилия-прозвище?) .
Имя "Пердита" имеет корни в языках латинской
подробнее...
Помогите задать 5 типов вопросов к предложению She likes to take part in concerts at school.
Does she like to take part in concerts at school?
Where does she like to take part? / What
подробнее...
Стоило ли покупать кожаный портфель от Prada?
Конечно стоило, ради картинки с дьяволом! Ведь именно он носит
подробнее...