G-факт 19 (логические и побитовые не-операторы на булевом языке)

Опубликовано: 17 Февраля, 2022

Большинство языков, включая C, C ++, Java и Python, предоставляют логический тип, для которого может быть установлено значение False или True .
Рассмотрим нижеприведенные программы, которые используют оператор логического НЕ (или!) Для логического значения.

C/C++


// 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++


// 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. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.