sizeof(bool)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Кстати, о пятнице, wdrakula, ты в курсе, что я вообще-то антисемит? Я сам только вчера узнал! Припёрлись ко мне два стариннейших (ещё с 80-х) друга - твои соплеменники, ну уселись в беседке, я приволок из дома Джека Дэниэлся, сидим квасим, а они затеяли бесконечное обсуждение вчерашней "прямой линии". Я уж и так пытался тему поменять и эдак - не, ни фига, вцепились друг в друга и доказывают непонятно кому, что он там сказал, а, главное, чего не сказал. Ну, когда длительность обсуждения превысила длительность самого события, я уж на крайнюю меру пошёл - напомнил им гарик по "спор о судьбах русского народа". Так один из них мне и выдал: "А антисемитам слова вообще не давали, притащи лучше ещё вискаря, если у тебя - нищеброда есть, конечно". Ну в общем, в ответ я включил антисемита и начал их троллить. Так и просидели до ночи, пока весь, что у меня был, вискарь не закончился. Но тема таки поменялась :)

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

DetSimen пишет:

Иоптваюмать.  Ничо не понял.

Во-во, leks тоже :)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

ЕвгенийП пишет:

Кстати, о пятнице, wdrakula, ты в курсе, что я вообще-то антисемит?

Я, таки, апчём-то таком догадывался!

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ЕвгенийП пишет:

leks пишет:
вроде ясно всё - итог будет один
Да, в том-то и дело, что разный итог. Ничерта ведь не поняли :)

я правильно понимаю в таком случае, если делаем с 1, то & логически станет как | ?

b707
Offline
Зарегистрирован: 26.05.2017

leks пишет:

 Если одно утверждение в цепочке ложь, то и всё будет ложь при одинарном или двойном значке. Просто по привычке одинарный значок считал логическим "и". 

если одно ложь - то да, все будет ложь. Разница начинается, когда все утверждения в цепочке - истина :)

2 && 1 = true, однако 2 & 1 = false

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

ua6em пишет:

я правильно понимаю в таком случае, если делаем с 1, то & логически станет как | ?

Если значения операндов только 1 и 0, то да, разница только в "ленивой логике", о которой говорил Сэдмэн. А вот для других значений операндов - это просто разные операции.

leks
Offline
Зарегистрирован: 22.10.2017

ЕвгенийП пишет:

leks пишет:
вроде ясно всё - итог будет один
Да, в том-то и дело, что разный итог. Ничерта ведь не поняли :)

Жаль бежать празновать дальше надо.

Просто я писал например : if (x>150&x<450) то... и всё выполнялось как задумывалось.

Чтоб разочароваться надо было как? Дочитал статью ниже - стало ещё хуже - пишут && только для boolean, & для цифр....

Начинает вроде доходить... - x>150 может дать 0 или 1, потом я его с соседним результатом как цифру так что ли? и результат непредсказуем?

Счас не могу практически проверить, раньше везде прокатывало и подумалось, что чистые формальности это всё.  

leks
Offline
Зарегистрирован: 22.10.2017

Не успел прочитать прежде чем отправил. Буду думать.

leks
Offline
Зарегистрирован: 22.10.2017

Ну тоесть если я пишу if(x>150&x<250&y>150&y<250.....) и такое же с двумя &&  то это приминительно к ситуации одинаково? Просто написать в условии "если (2&&1)" я никогда не посмею :) 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Так, leks, вечер перестаёт быть томным. Берёте Кернигана и Ритчи и читаете (или не берёте, и не читаете - дело Ваше), а здесь глупости постить хватит. Надоело.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016

ЕвгенийП пишет:
Почистить? Или один хрен читать не будете?

Почистить, читаю. Спасибо за ответы.

leks
Offline
Зарегистрирован: 22.10.2017

ЕвгенийП пишет:

Так, leks, вечер перестаёт быть томным. Берёте Кернигана и Ритчи и читаете (или не берёте, и не читаете - дело Ваше), а здесь глупости постить хватит. Надоело.

Да, потрите пожалуйста мои сообщения чтоб народ не путался.

Вот тут глянул ещё я.

http://cppstudio.com/post/300/

Цитата:

При использовании поразрядных логических операций в  логических условиях результат получается такой же, как и при использовании логических операций &&   ||. И это понятно, так как логика у них одинакова!!

Всё таки без разницы (наверно) что & , что && (это не цитата).

Голова гудит, если ночь не спать и самогонку пить (всётаки надо выбирать || а не &&)

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

leks пишет:

Всё таки без разницы (наверно) что & , что && (это не цитата).

Да уж...

IMHO это тема для песочницы, а не для раздела "Программирование".

Вы хотя бы это почитайте: http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov#comment-410900

leks
Offline
Зарегистрирован: 22.10.2017

andriano пишет:

leks пишет:

Всё таки без разницы (наверно) что & , что && (это не цитата).

Да уж...

IMHO это тема для песочницы, а не для раздела "Программирование".

Вы хотя бы это почитайте: http://arduino.ru/forum/obshchii/pesochnitsa-dlya-vsekh-novichkov#comment-410900

Почитал. Именно так и думал о смысле &  приминительно к логическим элементам микросхем. && в мои представления не укладывалось :)

Вот такой пример мучал в вариациях, нигде неожиданного не получил. Вы правы, все и так это понимают, надо затереть сообщения в теме чтоб не отвлекать ерундой.

int a=5;
int b=10;
int c=20;
int d=0;
void setup() 
{
 Serial.begin(9600);
 if(a>4&b>9&c>19&(a+b)>14){d=1;}else{d=0;} 
 Serial.println(d);
}

void loop() 
{
  
}

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

leks пишет:

Именно так и думал о смысле &  приминительно к логическим элементам микросхем. 

Тушите свет!!!

Я же Вам сказал, прочитать Кернигана и Ритчи и не постить глупости. Вы прочитали? Так какого рожна!

leks
Offline
Зарегистрирован: 22.10.2017

ЕвгенийП пишет:

leks пишет:

Именно так и думал о смысле &  приминительно к логическим элементам микросхем. 

Тушите свет!!!

Я же Вам сказал, прочитать Кернигана и Ритчи и не постить глупости. Вы прочитали? Так какого рожна!

Прочитал. Прямых ответов не нашёл. Всё равно у меня сложилось мнение, что для логических утверждений которые могут быть истина или ложь при применении && и для чисел 1 и 0 при применении & результат при любых комбинациях будет одинаков. Ну нет в микросхемах 2, нет. Есть 0,1 и Z.

Впрочем надо это затереть всё, дабы не усугблядь. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

leks пишет:

Прочитал. Прямых ответов не нашёл. 

Неправда. Целиком его за такое время не прочитать. А пролистать в поиска прямого ответа, так это не сборник вопросо и ответов - делать так нет никакого смысла.

leks
Offline
Зарегистрирован: 22.10.2017

ЕвгенийП пишет:

leks пишет:

Прочитал. Прямых ответов не нашёл. 

Неправда. Целиком его за такое время не прочитать. А пролистать в поиска прямого ответа, так это не сборник вопросо и ответов - делать так нет никакого смысла.

Ну вот абзац как раз как мне ответили. Правда понять как это утверждение "2" может быть истиной или нет мне не понять :)

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Причём тут абзац? Я Вам уже говорил, эту книгу надо читать целиком, разбирая и выполняя все примеры. Только тогда от неё будет толк.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

А проверить?
Смысл то простой в операциях вида && есть только два значения 0 и 1, двойка же это не ноль? Значит будет TRUE
 

int x = 1;
int y = 2;
void setup() {
 Serial.begin(115200);

}

void loop() {
  if(x&&y){
    Serial.println("Да, равно единице!");
  }else{
   Serial.println("В книге соврали!");
  }
  delay(2000);
}

 

int x = 1;
int y = 0;
void setup() {
 Serial.begin(115200);

}

void loop() {
  if(x&&y){
    Serial.println("Да, равно единице!");
  }else{
   Serial.println("В книге соврали!");
  }
  delay(2000);
}

 

leks
Offline
Зарегистрирован: 22.10.2017

ua6em пишет:

А проверить?
Смысл то простой в операциях вида && есть только два значения 0 и 1, двойка же это не ноль? Значит будет TRUE
 

int x = 1;
int y = 2;
void setup() {
 Serial.begin(115200);

}

void loop() {
  if(x&&y){
    Serial.println("Да, равно единице!");
  }else{
   Serial.println("В книге соврали!");
  }
  delay(2000);
}

 

int x = 1;
int y = 0;
void setup() {
 Serial.begin(115200);

}

void loop() {
  if(x&&y){
    Serial.println("Да, равно единице!");
  }else{
   Serial.println("В книге соврали!");
  }
  delay(2000);
}

 

Счас проверить не совсем удобно, но я так намёк понял, все числа кроме 0 это истина при применении &&. Забавно, с таким же успехом можно было бы утверждать, что все числа кроме 1 ложь :)Как числа-утверждения можно проверять на истинность? 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

И при || тоже )))