G-факт 19 (логические и побитовые не-операторы на булевом языке)
Большинство языков, включая C, C ++, Java и Python, предоставляют логический тип, для которого может быть установлено значение False или True .
Рассмотрим нижеприведенные программы, которые используют оператор логического НЕ (или!) Для логического значения.
// A C/C++ program that uses Logical Not or ! on boolean
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool a = 1, b = 0;
a = !a;
b = !b;
printf("%d
%d", a, b);
return 0;
}
// Output: 0
// 1
Java
// A Java program that uses Logical Not or ! on booleanimport java.io.*;class GFG{ public static void main (String[] args) { boolean a = true, b = false; System.out.println(!a); System.out.println(!b); }}// Output: False// True |
Python
# A Python program that uses Logical Not or ! on booleana = not Trueb = not Falseprint aprint b# Output: False# True |
C#
// C# program that uses Logical// Not or ! on booleanusing System;class GFG{ public static void Main () { bool a = true, b = false; Console.WriteLine(!a); Console.WriteLine(!b); }}// Output: False// True// This code is contributed// by Rajput-Ji |
Javascript
<script>// A javascript program that uses Logical Not or ! on boolean var a = true, b = false; document.write(!a+"<br/>"); document.write(!b);// Output: False// True// This code contributed by gauravrajput1</script> |
The outputs of above programs are as expected, but the outputs following programs may not be as expected if we have not used Bitwise Not (or ~) operator before.
Python
# A Python program that uses Bitwise Not or ~ on booleana = Trueb = Falseprint ~aprint ~b |
// C/C++ program that uses Bitwise Not or ~ on boolean
#include <bits/stdc++.h>
using namespace std;
int main()
{
bool a = true, b = false;
cout << ~a << endl << ~b;
return 0;
}
Java
// A Java program that uses Bitwise Not or ~ on booleanimport java.io.*;class GFG{ public static void main (String[] args) { boolean a = true, b = false; System.out.println(~a); System.out.println(~b); }} |
Выход:
6: ошибка: неверный логический тип операнда для унарного оператора '~'
System.out.println (~ а);
^
7: ошибка: неверный логический тип операнда для унарного оператора '~'
System.out.println (~ b);
^
2 ошибкиЗаключение:
"Логично нет или!" предназначен для логических значений, а «побитовое нет или ~» - для целых чисел. Такие языки, как C / C ++ и python, автоматически переводят логический тип в целочисленный, когда применяется целочисленный оператор. Но Java этого не делает.
Эта статья предоставлена Арпитом Агарвалом . Если вам нравится GeeksforGeeks, и вы хотели бы внести свой вклад, вы также можете написать статью и отправить ее по электронной почте на deposit@geeksforgeeks.org. Посмотрите, как ваша статья появляется на главной странице GeeksforGeeks, и помогите другим гикам.
Пожалуйста, напишите комментарии, если вы обнаружите что-то неправильное, или вы хотите поделиться дополнительной информацией по теме, обсужденной выше
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.