x什么意思c语言(c语言中~x是什么意思)

本文目录

  • c语言中~x是什么意思
  • c语言中!x是什么意思

c语言中~x是什么意思

在C语言中,~x代表的意思是按位取反的意思。

~x也就是value的二进制表示的数值,按位取反,1取反就是0,0取反就是1,例如1011010取反后就是0100101。

其实~i,就是找到一个数x使x+i=-1。因此也就能理解为什么 ~(-1)=0,~(0)=-1了。

原码为正数,内存中的补码也为正数,按位取反后内存中的补码变为负数,当内存中的补码转化成原码时,原码等于=补码除符号位外逐位取反,并在最低位+1。

原码为负数,内存中的补码为原码的除符号位外逐位取反,并在最低位+1,按位取反后内存中的补码变为正数,当内存中的补码转化成原码时,原码=补码。

c语言中!x是什么意思

!x=not x

!x在c语言语句里面为一个运算,取非,也就是反意的意思,默认所有非0数为真,0为假,也就是说如果前提x为一个非0数,!x的结果就是0,如果x是0,结果就为1(默认值非0为1),而x!=0本身是一个判断语句,如果x本身是0,x!=0不成立,则这个式子值为0表示式子不成立,x等于任意非0数则x!=0成立,式子值为1,!x在括号里面作为判断条件等价于x==0

以下为运算过程:

非运算(!)

参与运算的表达式为真时,结果为假;参与运算的表达式为假时,结果为真。例如:

!0

0 为假,非运算的结果为真,也就是 1。

!(5》0)

5》0 的结果是1,为真,非运算的结果为假,也就是 0。
输出逻辑运算的结果:

  1. #include 《stdio.h》
  2. int main(){
  3. int a = 0, b = 10, c = -6;
  4. int result_1 = a&&b, result_2 = c||0;
  5. printf(“%d, %d\n“, result_1, !c);
  6. printf(“%d, %d\n“, 9&&0, result_2);
  7. printf(“%d, %d\n“, b||100, 0&&0);
  8. return 0;
  9. }

运行结果:
0, 0
0, 1
1, 0

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注