В чем разница между побитовыми и логическими операторами И в C / C ++?
Побитовый оператор And представлен как '&', а логический оператор представлен как '&&'. Ниже приведены некоторые основные различия между двумя операторами.
a) The logical and operator ‘&&’ expects its operands to be boolean expressions (either 1 or 0) and returns a boolean value.
The bitwise and operator ‘&’ work on Integral (short, int, unsigned, char, bool, unsigned char, long) values and return Integral value.
C++14
#include<stdio.h> int main() { int x = 3; //...0011 int y = 7; //...0111 // A typical use of "&&" if (y > 1 && y > x) printf ( "y is greater than 1 AND x
" ); // A typical use of "&" int z = x & y; // 0011 printf ( "z = %d" , z); return 0; } |
y is greater than 1 AND x z = 3
б) Если целое значение используется в качестве операнда для '&&', который должен работать с логическими значениями, в C.
… ..Нулевое значение считается ложным, а ненулевое значение - истинным.
Например, в следующей программе x и y считаются равными 1.
It is compiler error to use the non-integral expression as operand for bitwise &. For example the following program shows compiler error.
C
#include<stdio.h> // Example that uses non-integral expression as // operator for "&" int main() { float x = 2.0, y = 5.0; printf ( "%d" , x&y); return 0; } |
Выход:
ошибка: недопустимые операнды для двоичного & (имеют 'float' и 'float')
c) The ‘&&’ operator doesn’t evaluate the second operand if the first operand becomes false. Similarly ‘||’ doesn’t evaluate the second operand when first operand becomes true. The bitwise ‘&’ and ‘|’ operators always evaluate their operands.
C
#include<stdio.h> int main() { int x = 0; // "Geeks in &&" is NOT // printed because x is 0 printf ( "%d
" , (x && printf ( "Geeks in && " ))); // "Geeks in &" is printed printf ( "%d
" , (x & printf ( "Geeks in & " ))); return 0; } |
0 Geeks in & 0
Такие же различия есть между логическим ИЛИ '||' и побитовое ИЛИ '|'.
Эта статья предоставлена Ujjwal Jain . Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше.
Вниманию читателя! Не прекращайте учиться сейчас. Освойте все важные концепции DSA с помощью самостоятельного курса DSA по приемлемой для студентов цене и будьте готовы к работе в отрасли. Чтобы завершить подготовку от изучения языка к DS Algo и многому другому, см. Полный курс подготовки к собеседованию .
Если вы хотите посещать живые занятия с отраслевыми экспертами, пожалуйста, обращайтесь к Geeks Classes Live и Geeks Classes Live USA.