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 boolean import 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 boolean a = not True b = not False print a print b # Output: False # True |
C#
// C# program that uses Logical // Not or ! on boolean using 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 boolean a = True b = False print ~a print ~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 boolean import 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.