Иван
Так не !применяется к переменной isWeekend, а не к его значению falce?
Нет, оператор "не" применяется к значению, но чтобы лучше понимать условия, то для себя определи чем будет являтся отрицательное значение переменной
Иван
А где найти подобные примеры?
Этого не знаю, но с практикой точно разберешься
m700
А где найти подобные примеры?
думаю в школьном учебнике информатики есть понятное объяснение булевой алгебры + несколько законов которые можно применять
m700
приоритеты, правила де моргана, закон двойной инверсии
m700
и отличие знать надо &&/& ||/|
m700
помню этого в 7 классе выучил и пропустил в вузе дискретку и матлогику...до сих пор боль не испытал
Bogdan
и отличие знать надо &&/& ||/|
кстати многие постоянно путают && и &
m700
кстати многие постоянно путают && и &
в основном не знаю что такое & и |
m700
ни один первокурсник мне не сказал разницу
Bogdan
в основном не знаю что такое & и |
ну сравнение битов довольно опасная штука
m700
причем тут биты
Bogdan
и многие так привыкли к логическим что даже не задумываются о том что если первое ложное, то оно второе проверять не будет
утин
ни один первокурсник мне не сказал разницу
дак это же короткие операторы
Ivrus
и отличие знать надо &&/& ||/|
Из логических операторов то что было в книге по js (там 3 показали)все ясно кроме !этого .
Bogdan
причем тут биты
ну типо &, | побитовые, а && и || логические
Bogdan
нет
что нет
утин
ну типо &, | побитовые, а && и || логические
бля а я слышал что & и | в логике просто короткие операторы
m700
точнее ты правильно сказал
утин
они будут ебашить все условие целиком
m700
что нет
вот проебался бы у меня на первой практике информатики)))
Bogdan
бля а я слышал что & и | в логике просто короткие операторы
в логике да, но там под капотом все намного интереснее устроено
m700
в логике да, но там под капотом все намного интереснее устроено
суть в том что длинную операцию иногда очень эффективно юзать
Bogdan
что логическим достаточно ложного первого условия, что бы забить на 2
Bogdan
в том и отличие:D что & будет проверять оба
m700
эт как
кога нужно чтоб метод второго условия отработал обязательно
Bogdan
& это побитовая операция, она может использоваться даже для чисел
Bogdan
кога нужно чтоб метод второго условия отработал обязательно
а ещё иногда бывает что ты даун забыл о том что || и && это логический оператор и в итоге у тебя в 1 падает нулл, а во втором проверка что бы не выходило за диапазон массива (банальный пример)
Bogdan
в такие моменты нужно либо побитовый оператор применить либо просто подумать бошкой что должно проверится в 1 очередь
Bogdan
я один раз на ревью так проебся в спешке....такой распиздон получил
так это частый косяк с этими логическими и битовыми операторами
Bogdan
а потом не понятно почему эксепшен падает
m700
угу, но после того случая стал очень внимательно за этим следить
Andrii
Всем привет, у меня вопрос. Где могут пригодиться побитовые операторы в С ++ (<<", ">>")?
Например, static inline uint64_t ncm(uint64_t x) { uint64_t a = x & -x; uint64_t b = x + a; uint64_t c = b ^ x; c >> __builtin_ctz(x) + 2; return b | c; } А вообще, например, у тебя есть битовая маска пешек. Если её сдвинуть на 8, что мі получим битовую маску полей перед пешками, если теперь сделать and not занятые, то мы получим, куда пешки могут пойти на клетку вперёд, осталось только перебрать в цикле биты...
Bogdan
Чё опасного то?
это типо неудачный юмор
Andrii
это типо неудачный юмор
Я вообще видел всю логику вместо if на && и ||. Типа (DirectoryExists(dn) || CreateDirectory(dn)) && CopyFiles(...)
Bogdan
это в булевой было или нет?
Bogdan
точнее оно возвращало булевое значение?
Andrii
это в булевой было или нет?
Это WinAPI, сишное API, там нету bool но есть что-то вроде #define BOOL int
Bogdan
а я понял
Andrii
кстати а в высокоуровневых языках где-то может пригодиться побитовый сдвиг?
Вот мой код на Python, где я генерю все классы NPN эквивалентности для булевых функций. https://github.com/mustitz/pa-npn/blob/master/npn.py Сдвиг влево 9 раз юзается
Иван
Иван
Не удержался, просто смешно
Andrii
кстати а в высокоуровневых языках где-то может пригодиться побитовый сдвиг?
Тут просто если ты умеешь с битами работать, то где мешает высокоуровневость? Что мешает написать в Python def ncm(x): # pylint: disable=invalid-name """ Generate the next combination mask (NCM) for an integer. This is Gosper's hack to get the next integer with the same ones count. """ a = x & -x b = x + a c = b ^ x c >>= 1 + a.bit_length() return b | c
Шаман Каган
То есть совсем совсем с 0 лезть во флаттер? Там ведь и и понимание верстки нужно
ну а в чем логика: "я буду сначала учить жабаскрипт, который нихрена мне не пригодится для флаттера" ?
Andrii
я так понимаю » заменяет арифметические операции в машинном коде?
Нет, просто умение жонглировать битами это молоток. Если у тебя есть молоток, ты везде видишь гвозди. Если нету, то ты пользуешься другими инструментами. Если твой тимлид про биты ничего не знает, то в общем-то код с битами может привести его в ужас, типа «чё выпендриваешься, самый умный шоли?» А >> просто операция сдвига, которая выполняется с целым числом. Никакого машинного кода нету
m700
сложно ли вообще научиться с ними работать?
на предмете вычислительная техника дрючат этим
Andrii
Ну... мне это интересно, если любишь трюки, то да.
Andrii
на предмете вычислительная техника дрючат этим
Не, думаю там только начатки. Вот ты изучил этот предмет?
Bogdan
на программой инженерии
m700
Не, думаю там только начатки. Вот ты изучил этот предмет?
я лекции проебывал, впервые когда на практику пришел узнал что асм, с удовольствием лабы за семестр сделал за неделю, думал автомат, а препод непонятно почему залупился никому не написал рекомендацию в конце, на дешифраторах/шифраторах начал блевать ибо у меня в голове не укладывалось почему кодирование называется шифрованием и забил.
Bogdan
у нас слишком бесполезно его преподают, просто с инета скатали чьи-то примеры, запихнули в док файл и учитесь сами
m700
Не, думаю там только начатки. Вот ты изучил этот предмет?
в сигнальных процессорах помню дрючили сдвигами..но сам не помню вобще
Andrii
Ой, сдвиги это фигня. Вот самое простое, что делает код x &= x - 1?
Ivrus
ну а в чем логика: "я буду сначала учить жабаскрипт, который нихрена мне не пригодится для флаттера" ?
Просто на данный момент вакансий на js и фреймворках куда больше чем на флаттере. Боюсь выучу потом буду искать долго Вот и хотел с него стартануть, хотя бы пощупать программирование через него.
Ivrus
ну а в чем логика: "я буду сначала учить жабаскрипт, который нихрена мне не пригодится для флаттера" ?
И ещё момент, на флаттере не так много инфы/книг ,практикующих к кому за вопросами можно обратиться.
Ivrus
Ой, что тебе количество вакансий? А количество соискателей тебя не смущает?
Ну их то я не вижу, в отличии от вакансий. Но догадываюсь что не мало, но раз вакансии открыты, значит далеко не все соискатели подходят.