- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
$a != abs($a)
$a+abs($a) == 0
$a && !($a + abs($a))
$n>>1 > $n
substr_count($a,"-")
is_nan(sqrt($number))
is_nan(log($n))
!array_shift(explode("-", $num))
(int)$var === ~~(int)$var
strlen(strval($num)) != strlen(strval(abs($num)))
strlen(decbin($n)) == 32
is_int(strpos(get_headers("http://habrahabr.ru/blogs/php/page$num/")[0], '404'));
function lessThanZero ($num) {
while (1) {
if ($num++ == 0) {
return true;
}
}
}
function is_value_between($value, $begin, $end) {
return in_array($value, range($begin,$end));
}
HEu3BECTHblu_nemyx # 0
bormand # 0 ⇈
gcc на них нет:
HEu3BECTHblu_nemyx # 0 ⇈
bormand # 0 ⇈
Оно вернёт true или переполнит int.
Оно вернёт true или повиснет нахуй.
Т.е. даже с unsigned это тупо return true. И даже если в цикле не инкрементить, то один фиг return true.
З.Ы. Нефиг писать функции, которые возвращают только одно значение )))
[email protected] # 0 ⇈
Если бы num было беззнаковым, тогда всё просто — в конце концов num переполнится и станет равным 0.
Если бы знаковое переполнение не было бы UB — то же самое.
bormand # 0 ⇈
Убери инкремент и он всё равно выкинет... Либо num уже ноль и мы вернём true либо всё повиснет и нам пофиг, можно тоже вернуть true.
bormand # 0 ⇈
Программа B называется аппроксимацией программы A, если для всех случаев, в которых A завершается B завершается с тем же результатом.
[email protected] # 0 ⇈
bormand # 0 ⇈
Т.е. формально любой UB эквивалентен зависанию.
Именно поэтому мы можем аппроксимировать программу с UB'ом при помощи более простой программы, которая забивает на поведение под UB'ом.
> за границы массива
Это я вроде постила.
Kozel # 0
HEu3BECTHblu_nemyx # 0 ⇈
j123123 # 0
Может еще нужно чтоб была особая функция для проверки равенства нулю?
HEu3BECTHblu_nemyx # 0 ⇈
https://www.npmjs.com/~pethu
j123123 # 0
The Math.sign() function returns either a positive or negative +/- 1, indicating the sign of a number passed into the argument. If the number passed into Math.sign() is 0, it will return a +/- 0. Note that if the number is positive, an explicit (+) will not be returned.
HEu3BECTHblu_nemyx # 0 ⇈
PolinaAksenova # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
PolinaAksenova # 0 ⇈
j123123 # 0 ⇈
PolinaAksenova # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
На уровне языка можно так записать?
PolinaAksenova # 0 ⇈
Модуль decimal является частью стандартной библиотеки языка.
HEu3BECTHblu_nemyx # 0 ⇈
«bcmath» в поставку входит, но в «Ideone» его почему-то не включили.
HEu3BECTHblu_nemyx # 0 ⇈
bormand # 0 ⇈
bormand # 0 ⇈
Ну да, можешь локальный контекст открыть и посчитать что-то, если глобальный крутить не хочется.
bormand # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
j123123 # 0 ⇈
В каком еще языке есть такая хер-ня?
HEu3BECTHblu_nemyx # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
bormand # 0 ⇈
Там хоть оператор st =[ cmd ]=> st' можно объявить.
j123123 # 0 ⇈
https://riptutorial.com/haskell/example/23080/custom-operators
HEu3BECTHblu_nemyx # 0 ⇈
j123123 # 0 ⇈
JloJle4Ka # 0 ⇈
pethu.<=?=>
<=?=> – это типа постфиксный оператор.
bormand # 0 ⇈
j123123 # 0 ⇈
bormand # 0 ⇈
j123123 # 0 ⇈
bormand # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
=== есть в Яибу, но там он означает совсем другое. Кто, не подглядывая в справку, вспомнит его значение?
MAKAKA # 0 ⇈
Это просто перегруженный у разных говнов оператор, и он не коммутативен
HEu3BECTHblu_nemyx # 0 ⇈
Coq # 0 ⇈
JloJle4Ka # 0 ⇈
Coq # 0 ⇈
JloJle4Ka # 0 ⇈
Coq # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
booratihno # 0 ⇈
хотя мне этот оператор тоже не нравица
bormand # 0 ⇈
Т.е. в с++ всё тоже норм т.к. "максимально ожидаемо для полностью изучившего стандарт"?
[email protected] # 0 ⇈
То есть, никем не ожидаемое?
booratihno # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
booratihno # 0 ⇈
потому я за "яuбy"
j123123 # 0 ⇈
https://ideone.com/Wsigk8
PHP зачем-то при "0" == "-0" и "0" == "0" кастует эти "0" "-0" в числа и потом сравнивает, а при === сравнивает их как строки. Нахуя так надо делать?
PolinaAksenova # 0 ⇈
Так это давняя смешнявка. Пых (справедливо) считает, что по умочанию ня нём программирует ротоняк, который про эти ваши "типы" ня задумывается, поэтому оператор "==" пытается аргументы-строки привести к числам. В каком-то, кажется, пятом пыхе вообще была встроенная уязвимость, благодаря которой все строки, нячинающиеся с "0e", считались равными. Представь, как это отразилось ня коде пыхомакак, которые сравнивали хэши паролей пользователей через PHP.
guest # 0 ⇈
j123123 # 0 ⇈
guest # 0 ⇈
PolinaAksenova # 0 ⇈
https://ideone.com/QUmt2m
guest # 0 ⇈
HEu3BECTHblu_nemyx # 0 ⇈
frnnds # 0 ⇈
bormand # 0 ⇈
Если бы == всегда кастовал в числа, как в том же пёрле, было бы просто и логично. Но это ведь не так. Оно иногда в строки кастует, иногда в числа, ещё и в разных версиях эта эвристика работает по-разному.
frnnds # 0 ⇈
Но этот оператор чаще всего используется при сравнении массивов, где он-то удобен.
bormand # 0 ⇈
"php" == 0
frnnds # 0 ⇈
https://wiki.php.net/rfc/string_to_number_comparison
В восьмой версии изменили поведение.
HEu3BECTHblu_nemyx # 0 ⇈
Именно поэтому я не люблю полагаться на неявное приведение, а предпочитаю использовать === и явный вызов strval, intval, floatval etc.
frnnds # 0 ⇈
Согласен, это предпочтительнее.
>явный вызов strval, intval, floatval etc
А тут я больше привык к (string) и тд. Смысл не меняется.
ASD_77 # 0
j123123 # 0 ⇈
ASD_77 # 0 ⇈