portd



Автор Денис задал вопрос в разделе Другие языки и технологии

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 !
Оригенальное все просто !

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: PORTD|=0x02 PORTD&=0xFD объясните как так происходит что определенный бит устанавливается в 1 или 0 ?
спросили в Другое Hyatt
как найти тексты песен pussycatdolls i hate this part
Вводишь в поисковик (Яндекс, Гугль и др. ) "тексты песен pussycat dolls i hate this part" тебе
подробнее...
спросили в Мода 20th Century Fox
скажите когда выдет Дьявол носит «Prada» 2
В своем недавнем интервью Энн Хэтэуэй призналась, что продолжения хитового фильма «Дьявол носит
подробнее...
спросили в Rage группа RICO
San Juan, Puerto Rico это США? и где это на карте? а еще где South Carolina? тоже в США??
Остров Puerto Rico относится к группе Антильских островов, принадлежит США. Его столица - город San
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:
спросили в Австралия Австралии
разница во времени c Австралией. кто знает разницу во времени Москва - Perth (Австралия)
Разница конкретно с городом Перт (Perth), штат Западная Австралия - зимой 5 часов, летом 4 часа.подробнее...
спросили в Отдушка
Кто- нибудь пользовался финским мылом PARDO для выведения пятен? Убирёт ли жирное пятно?
Любое мыло типа PARDO-это обыкновенное дешёвое хозяйственное мыло, изменили цвет (белое, синее) и
подробнее...
спросили в Музыка IMAX
Помогите найти аккорды к песне IAMX - The stupid, the proud. Заранее спасибо!
IAMX - The stupid, the proud

Cm - Fm - G7 -- Cm - Fm - G7 - вступление

1.подробнее...
спросили в Post- Post
в past simple. He...(decide)to take part in the competition.
в past simple будет:

He decided to take part in the
подробнее...

Что на испанском слэнге означает Perdita Durango?
Это название боевика (имя и фамилия-прозвище?) .
Имя "Пердита" имеет корни в языках латинской
подробнее...
спросили в Мода Портфель
Стоило ли покупать кожаный портфель от Prada?
Конечно стоило, ради картинки с дьяволом! Ведь именно он носит
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*