当前位置:首页 C++ > 正文

c++逻辑非和按位取反的区别

作者:野牛程序员:2023-07-18 17:12:46 C++阅读 2667

在C++中,逻辑非运算符和按位取反运算符是两个不同的操作,它们的作用和行为也不同。

  1. 逻辑非(Logical NOT)运算符: 逻辑非运算符用于对一个布尔值或表达式的结果进行取反操作。它使用叹号符号(!)表示。如果操作数为true,则逻辑非运算符将返回false;如果操作数为false,则返回true。例如:

    bool flag = true;
    bool result = !flag; // result的值为false

  2. 在逻辑非运算中,除了布尔值true和false外,C++将其他非零值都视为true,因此逻辑非运算符应用于非零值时,会返回false。

  3. 按位取反(Bitwise NOT)运算符: 按位取反运算符用于对整数类型的位进行逐位取反操作。它使用波浪符号(~)表示。按位取反运算符会将二进制表示中的每个位取反,即0变为1,1变为0。例如:

    int num = 5; // 二进制表示为 0000 0101
    int result = ~num; // result的值为 -6 (二进制表示为 1111 1001)

  4. 按位取反运算符适用于整数类型(如int、char、unsigned等),并将其表示为补码形式进行逐位取反操作。

综上所述,逻辑非运算符应用于布尔值或表达式,将true变为false,false变为true。而按位取反运算符应用于整数类型,对其二进制表示的每个位进行逐位取反操作。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
相关推荐

最新推荐

热门点击