21xrx.com
2024-09-17 04:24:43 Tuesday
登录
文章检索 我的文章 写文章
C++中!的用法
2023-07-06 17:32:37 深夜i     --     --
C++ usage exclamation mark

在C++中,感叹号“!”有两种主要的用法:逻辑非和位求反。

首先,逻辑非是一元运算符,用于取反布尔表达式的值。当运算符左侧的表达式为真时,逻辑非会返回假,当左侧表达式为假时,逻辑非会返回真。例如:


bool a = true;

bool b = !a; //b为false

其次,位求反是在位级别上对每个二进制数位进行取反的一元运算符。即对于一个值x,在位级别上对每个二进制数位进行取反操作,得到非 x 的值。例如:


unsigned char a = 0x6A; // 二进制形式:0110 1010

unsigned char b = ~a; // 二进制形式:1001 0101,即补码形式

需要注意的是,位求反操作通常会导致符号位的改变,因此对于有符号类型的数值,其位求反的行为是未定义的。而对于无符号类型的数值,位求反是可定义的。

总结以上内容,C++中的感叹号可以用于逻辑非和位求反两个方面,需要根据具体的场景进行使用,特别要注意位求反对于有符号类型的数值是不被支持的。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复