Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2014.01.05;
Скачать: [xml.tar.bz2];

Вниз

сравнение чисел   Найти похожие ветки 

 
accessviolation   (2013-03-14 17:33) [0]

почему выдает непраильно сравнивает:


const
 C1 = $01;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
var
 C1_: Int;
begin
 C1_ := 5;

 if (C1_ and C1) = C1 then
   ShowMessage("equal with C1")
 else
   ShowMessage("not equal with C1");
end;


почему выдает, что равные, значение же 5?


 
RWolf ©   (2013-03-14 17:34) [1]

(x and x) = x для любого целого x.


 
clickmaker ©   (2013-03-14 17:36) [2]

> почему выдает, что равные

потому что это не проверка на равенство, а битовая операция. Представь 1 и 5 в двоичном виде и посмотри


 
RWolf ©   (2013-03-14 17:38) [3]


> [1]

виноват, проглядел знак подчёркивания.
http://ru.wikipedia.org/wiki/Битовые_операции


 
accessviolation   (2013-03-14 17:45) [4]

а как тогда правильно сравнивать int-значение со значением в двоичном виде?


var
 C1_: Int;
begin
 C1_ := 1;
 if C1_ = C1 then
   ShowMessage("equal with C1")
 else
   ShowMessage("not equal with C1");


так?


 
clickmaker ©   (2013-03-14 17:51) [5]

> сравнивать int-значение со значением в двоичном виде?

а int значение в каком виде?


 
Ega23 ©   (2013-03-14 19:22) [6]


> а как тогда правильно сравнивать int-значение со значением
> в двоичном виде?


Во-первых,  C1 = $01;  - это не двоичный, а hex-вид.
Во-вторых, это строковое представление числа.

У тебя есть три ракушки. Ты можешь сказать: "У меня есть три ракушки", "У меня есть 3 ракушки", "У меня есть 11 ракушек (в двоичной системе)", "У меня есть 10 ракушек (в троичной системе)", "У меня есть three ракушки (на аглицком)", или "У меня есть драй ракушек на немецком".
Количество ракушек у тебя при этом не изменится, изменится только то, как ты это количество назвал собеседнику.
Вот ровно то же самое и с байтами. "Внутре" - это набор единичек и нулей. Как ты его будешь интерпретировать - это твоё личное дело, набор от этого никак не изменится.


 
Плохиш ©   (2013-03-14 19:45) [7]


> accessviolation   (14.03.13 17:45) [4]
> а как тогда правильно сравнивать int-значение со значением
> в двоичном виде?

В учебнике класс за 2й должно быть написано.


 
Jeer ©   (2013-03-14 23:30) [8]

> В учебнике класс за 2й должно быть написано.

Да нет уже тех учебников и учителей - теперь ЕГЭ :)


 
Германн ©   (2013-03-15 02:40) [9]

Удалено модератором
Примечание: overquoting



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2014.01.05;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.002 c
15-1373615056
Очень Злой
2013-07-12 11:44
2014.01.05
Типа пятничная задачка


15-1374177026
Jeer
2013-07-18 23:50
2014.01.05
Помним, чтим.."Нормандия-Неман"


2-1362062744
ttimes
2013-02-28 18:45
2014.01.05
ADOTable1 как сделать Limit или offset


2-1363085015
ttt
2013-03-12 14:43
2014.01.05
Добавить ContextMenu в подменю попупа


2-1363092921
cr@nk
2013-03-12 16:55
2014.01.05
Как правильно организовать выбор даты из имеющегося списка?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский