Осталось лишь заметить, что в C# вместо
if(A&B) надо писать явно
if((A&B)!=0)...
Ну и ещё различия есть... Например к числам логические операторы типа
&& в C# применять нельзя. А в языке C можно. Иногда странноватые вещи получаются. К примеру, если ненулевое число трактуется как истина, то сишное выражение
4&&3 равно "истине", т.е. единице, но побитовая версия
4&3 дает "ложное" значение, т.е. ноль. В этом смысле у C# было бы преимущество, если бы до него других C-подобных языков не существовало. :)
-- Вт июл 19, 2011 01:43:50 --2
BridgeportЦитата:
Верно ли это? т.е. & и + побитово одно и тоже?
Нет. Вы бы ещё могли спросить эквивалентны ли
& с
* и
| с
+. :) Кстати, незнаю как с
& и
*, но операторы
| и
+ действительно похожи, только
+ складывает числа по-честному, т.е. перенося единицы из переполняющихся разрядов в старшие, а
| складывает числа бит за битом, не заботясь о переносе. Иногда эту взаимозаменяемость операторов можно встретить и в реальном коде (обработка флажков), особенно этим грешат delphi-кодеры. :)