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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 04.11.2010, 12:05   #1
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию Логические операции

Никогда не мог понять, что значат все выражения, типа
Код:
var
     a,b,c:Integer;
begin
        a:=10;
        b:=5;
        c:=a and b;
       c:=c xor a; //и т.д.
Что всё это значит?Ни поиск по форуму, ни яндекс, ни пара учебников мне не помогли.
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.11.2010, 12:14   #2
BeJIuKuu_Hexo4yxa
Пользователь
 
Регистрация: 13.10.2010
Сообщений: 96
По умолчанию

Скорее всего внутри языка все перекодируется в двоичный код, выполняются логические операции, а потом перекодируется обратно.
Я так строки ксорил для криптографии
Пишите код так, как будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете. (Стив Макконнелл)
BeJIuKuu_Hexo4yxa вне форума Ответить с цитированием
Старый 04.11.2010, 12:16   #3
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Выполнение побитовых сравнений чисел. Например:
Код:
  a := 3;
  b := 5;

  c := a and b;
с будет равно 1, переведи 5 и 3 в двоичный вид и сравни 1 и 0 с помощью логического И.
profi вне форума Ответить с цитированием
Старый 04.11.2010, 12:16   #4
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

А почему тема в разделе "Помощь студентам"?Я не студент...

Ну 5 - это 101, 3 - 11. И как сравнение выполняется?

Последний раз редактировалось Stilet; 04.11.2010 в 13:12.
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.11.2010, 12:18   #5
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

and это логическое умножение,
такие операции на сколько я знаю должны проводиться с булевыми выражениями.
Например true and false = false, аналогия - 1*0=0...

xor - исключающее ИЛИ, хз как понятнее описать:
0 xor 0 = 1
0 --- 1 = 0
1 --- 0 = 0
1 --- 1 = 0

xor = операции not or =)
Риндера вне форума Ответить с цитированием
Старый 04.11.2010, 12:22   #6
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

1 - 1 = 1
0 - 1 = 0
1 - 0 = 0
profi вне форума Ответить с цитированием
Старый 04.11.2010, 12:30   #7
_-Re@l-_
C++, Java
Старожил
 
Аватар для _-Re@l-_
 
Регистрация: 10.04.2010
Сообщений: 2,665
По умолчанию

Ничего не понял.
Вот что будет здесь:
Код:
a:=7;
b:=2;
c:=a xor b;
_-Re@l-_ вне форума Ответить с цитированием
Старый 04.11.2010, 12:40   #8
Риндера
Delphi, учу С
Форумчанин
 
Аватар для Риндера
 
Регистрация: 20.10.2010
Сообщений: 178
По умолчанию

Код:
a:=7;
b:=2;
c:=a xor b;
5 получается.
По наблюдениям - если a > b, то вычисляется разность a-b.
если a < b, то вычисляется сумма.
если a = b, то ответ ноль, так что видимо разность.

Но почему так, пока не поняла. Вообще в голове не укладывается, как можно проводить булевые операции с натуральными числами и в ответе получать число))))
Риндера вне форума Ответить с цитированием
Старый 04.11.2010, 13:04   #9
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Риндера, логические операции применимы как к операндам логического типа, так и к операндам целого типа. Если операнды целые числа, то результат логической операции тоже целое число.
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 04.11.2010, 13:08   #10
profi
Участник клуба Подтвердите свой е-майл
 
Регистрация: 19.11.2007
Сообщений: 1,022
По умолчанию

Цитата:
a:=7;
b:=2;
c:=a xor b;
Искл. ИЛИ:

1 - 0 = 1
1 - 1 = 0
1 - 0 = 1

Вот с этого и нужно было начинать учить программирование, с самых основ, а не с классов и объектов.
profi вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
логические операции yk92 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 28.10.2010 09:38
Логические операции AlexandraKr Помощь студентам 0 18.10.2010 15:20
Логические операции в операторе if – else(C++) LaNgOr Помощь студентам 1 01.10.2010 23:42
Логические операции тотошкин Помощь студентам 1 23.01.2010 21:52
TurboPascal: логические операции над целыми числами плюс перевод.... ulala Помощь студентам 4 21.10.2009 12:00