Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.01.2012, 19:20   #1
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
Подмигивание Символы в С++

Всем привет! Мне потребовалось перевести одну функцию с С++ на Delphi. Я С++ практически не знаю, поэтому у меня возникли трудности. Я почти всю функцию перевёл кроме этих моментов, мне не понятно значение символов:
Код:
...
 if (!OWReset()) - что в этом условии означает восклицательный знак? И для чего он используется?
...
 if ((id_bit == 1) && (cmp_id_bit == 1)) - Тут не могу понять что за == и какова здесь роль символов &&?
...
if (id_bit != cmp_id_bit) - Тут символ !=
...
search_direction = (id_bit_number == LastDiscrepancy); - В чём отличие = от ==?
...
if (search_direction == 1)
              ROM_NO[rom_byte_number] |= rom_byte_mask;
            else
              ROM_NO[rom_byte_number] &= ~rom_byte_mask;
- Как здесь понять эти символы &= ~ ?
...
id_bit_number++; - Если я не ошибаюсь, то тут идёт увеличение на 1.
rom_byte_mask <<= 1; - Тут не понятно для чего используются <<=
Подскажите, пожалуйста, для чего используются эти символы?
P.S. OWReset() - функция,id_bit,cmp_id_bit,id_bit_nu mber,LastDiscrepancy,ROM_NO,rom_byt e_mask - переменные.
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 11.01.2012, 19:32   #2
Asdprom
Форумчанин
 
Регистрация: 05.02.2011
Сообщений: 119
По умолчанию

! это значит Не
== сравнение равно или не равно
&& толи "и" толи "или"
= присвоение значения
++ прибавление
остльные не помню)
Asdprom вне форума Ответить с цитированием
Старый 11.01.2012, 19:40   #3
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

C++ => Delphi
== => =(сравнение)
! => not
&& => and
= => :=(присваивание)
data |= arg => data:=data or arg
data &= arg => data:=data and arg
~data => <HighTypeValue> xor data(поидее как то так)
<переменная целого типа>++ => inc(<переменная целого типа>)
data<<=1 => data:=data shl 1
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.01.2012, 20:09   #4
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Asdprom,Пепел Феникса Большое Вам спасибо! Теперь всё получилось!
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Старый 20.01.2012, 12:42   #5
Johnson
кривокодер ;)
Форумчанин
 
Аватар для Johnson
 
Регистрация: 20.06.2008
Сообщений: 707
По умолчанию

Насколько я помню, && и & отличаются тем, что в первом случае после проверки и несовпадении первого условия дальнейшие проверки производиться не будут, а во втором случае будут. Т.е., например, A&&B - если А == false, то проверка В не будет производиться. Если символ одиночный - то произведется.

Так же хочу добавить перевод символов:
|| => or (или)
Одиночный и двойной символ аналогичен с оператором "и".
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид}
Johnson вне форума Ответить с цитированием
Старый 20.01.2012, 12:46   #6
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Цитата:
Насколько я помню, && и & отличаются тем, ч
& - это побитовое И, только и всего.
_-Re@l-_ вне форума Ответить с цитированием
Старый 20.01.2012, 18:09   #7
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

дополню, && это булева операция(оперирует только над bool, с неявным приведением)
& же бинарная(работает с битами).

бинарные обязаны вычисляться до конца, так как приведение к bool(для условия) идет именно в конце вычисления.
булевы же могут быть оптимизированы.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Даны натуральное число n и символы s1,...,sn. Получите все символы, расположенные до первого двоеточия (Pascal) Татьана Помощь студентам 16 22.09.2011 15:05
Символы С# Novi4ok_11 Помощь студентам 5 25.02.2011 19:20
Символы! darter96 Помощь студентам 3 25.02.2010 20:01
СИМВОЛЫ - помогите решить задачу на символы kiko Паскаль, Turbo Pascal, PascalABC.NET 5 30.11.2008 16:09