Как много интересного можно увидать в не-профессиональных ныне прогах, в смысле я имею ввиду то что многие прогеры оказываются совсем не-знакомы с битовой арифметикой, и в результате чего код в логических операциях становится таким перегруженым, что диву даешься, а результат как всегда простой. Вот я решил помочь тебе - как правильно составлять и минимизировать формулы логики с битовыми операциями.
В самом начале определим понятие бит, как единицу информации, принятой в двоичной логике. Обычно в логике он принисает два значения - истина и ложь. При записи в прогах это соответствует значениям - true и false, или в Си-шином представлении, как - 1 и 0. Фактически под значение истина в проге - логическое значение принимает любое слово отличное от нуля. Т.е. если мы при оперировании переменной в условных операциях в качестве аргумента подставляем значение отличное от нуля, то логическая операция считает эту величину - истиной. Это у многих вызывает некий супорт, и поэтому частенько в логических выражениях встречается некая такая последовательность на проверку аргумента по равенству нулю, что в конце концов в машинных кодах компьютера вырождается в неэффективность
Пример не-логичности: взято из плагина движка WP - WP-Optimize
if(!$comments==NULL||!$comments==0){ ......................... } else
Фактически - сначала интерпретатор заставляют перетранслировать два нелогичных сравнений (тратя время и ресурсы), которые в принципе есть одна и та же проверка одного и того же аргумента, ибо значения при операциях логики всегда приводятся по правилу приведенному выше к двум противоположным по-сути значениям, а затем в процессоре дважды выполняют одинаковые действия, и наконец результат объединяется по логическому ИЛИ. Как я понимаю автор плагина хотел фразой: (!$comments==0) сказать, что надо вызвать действия при условии не равенства нулю аргумента, хотя проверка на нуль в компьютерах с любой системой команд - абсурдна, ибо это просто есть внутрення операция АЛУ любого процессора, которая есть суть проверки состояния результата, а потом это утверждение еще и проверяется, что оно не есть нуль. Фактически эта фраза в логичной записи правильно должна быть трансформирована в такую - ($comments), ибо как я раньше писал, любое значение логики отличное от по-битного нуля в аргументе есть истина.
Расшифровываю для особливо тупых - значения аргумента равные === 1,89,966755: есть истина, а значение === 0: есть ложь, и все другие операции по проверке есть просто обыкновенный и тупой мазохизм от недоучек- бакалавров и аспирантшизы
Сначала рассмотрим какие операции в природе есть. Их всего, в качестве основных, принято три+1.
Эта плюс 1 - операция, построенная на основных , но она все же имеет самостоятельное значение, так как стала основой при построении арифметической операции сложении, и может реализоваться по другому принципу, отличному от принципов реализации первых трех основных.