реклама на сайте
подробности

 
 
> инвертировать один бит
sergey sva
сообщение Feb 11 2010, 09:48
Сообщение #1


Гуру
******

Группа: Свой
Сообщений: 2 546
Регистрация: 23-05-07
Из: Самарская область Сызрань
Пользователь №: 27 923



Нужно инвертировать один бит, в переменной, подозреваю что делается очень просто smile.gif, но что то не соображу как.

#define dataflag (1<<6)
ReturnValue =(ReturnValue ~ dataflag);
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
yurmala
сообщение Mar 2 2011, 05:57
Сообщение #2


Участник
*

Группа: Свой
Сообщений: 65
Регистрация: 9-02-11
Из: Трехгорный
Пользователь №: 62 814



а такая конструкция работает?
FIO0PIN ^= (1<<19);
что-то при отладке через keil смотрю - инвертируются какие-то левые биты порта 0, но не 19-й...
Go to the top of the page
 
+Quote Post
_Bill
сообщение Mar 3 2011, 06:37
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 416
Регистрация: 18-04-06
Из: Челябинск
Пользователь №: 16 219



Цитата(yurmala @ Mar 2 2011, 09:57) *
а такая конструкция работает?
FIO0PIN ^= (1<<19);
что-то при отладке через keil смотрю - инвертируются какие-то левые биты порта 0, но не 19-й...

1L<<19 Или нет?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 3 2011, 07:17
Сообщение #4


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (_Bill @ Mar 3 2011, 08:37) *
1L<<19 Или нет?
Или нет. int 32-битный. long также 32-битный. Даже для сдвига на 31 бит достаточно 1U<<31, для меньших можно и без квалификаторов. L пользы не принесет.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 30th July 2025 - 00:27
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016