Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 07.06.2012, 14:25
Kristina90 Kristina90 вне форума
Прохожий
 
Регистрация: 25.05.2012
Сообщения: 13
Версия Delphi: 7, 2010
Репутация: 10
По умолчанию непонятная булевая функция

Здравствуйте. Помогите пожалуйста понять булевую конструкцию типа
(64 and/or 64) = 64
при изменении значений выдает непонятную ерунду, например
(64 and 80) = 64 -> TRUE

пример программы на D7
http://depositfiles.com/files/ofjjvjw5j
Ответить с цитированием
  #2  
Старый 07.06.2012, 14:39
robt robt вне форума
Активный
 
Регистрация: 17.02.2011
Сообщения: 297
Репутация: -1806
По умолчанию

все правильно выдает
это не булева конструкция а арифметика детка, учи матчасть
Ответить с цитированием
  #3  
Старый 07.06.2012, 15:28
Bob256 Bob256 вне форума
Прохожий
 
Регистрация: 29.09.2009
Сообщения: 9
Репутация: 10
По умолчанию

64 = b1000000
80 = b1010000
64 and 80 = b1000000 and b1010000 = b1000000 = 64
64 or 80 = b1000000 or b1010000 = b1010000 = 80
Ответить с цитированием
  #4  
Старый 07.06.2012, 15:30
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

64 = 1000000b
80 = 1010000b
&& = 1000000b = 64
т.е.
Цитата:
(64 and 80) = 64 -> TRUE
все честно
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 07.06.2012, 23:41
Kristina90 Kristina90 вне форума
Прохожий
 
Регистрация: 25.05.2012
Сообщения: 13
Версия Delphi: 7, 2010
Репутация: 10
По умолчанию

Цитата:
Сообщение от NumLock
64 = 1000000b
80 = 1010000b
&& = 1000000b = 64
т.е.

все честно

все равно не понимаю как это рабюотает
Ответить с цитированием
  #6  
Старый 07.06.2012, 23:49
Аватар для Pilot_Red
Pilot_Red Pilot_Red вне форума
Продвинутый
 
Регистрация: 01.11.2006
Адрес: Карелия
Сообщения: 702
Версия Delphi: D7
Репутация: 11581
По умолчанию

and - это логическое умножение
единичка получается тогда, когда оба значения равны 1
т.е.

1 and 1 =1
1 and 0 =0
0 and 1 =0
0 and 0 =0

выше тебе написали попарное умножение

1000000b
1010000b
----------
1000000b = 64
Ответить с цитированием
Этот пользователь сказал Спасибо Pilot_Red за это полезное сообщение:
Kristina90 (10.06.2012)
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025