本文目录
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。
输出逻辑运算的结果:
- #include 《stdio.h》
- int main(){
- int a = 0, b = 10, c = -6;
- int result_1 = a&&b, result_2 = c||0;
- printf(“%d, %d\n“, result_1, !c);
- printf(“%d, %d\n“, 9&&0, result_2);
- printf(“%d, %d\n“, b||100, 0&&0);
- return 0;
- }
运行结果:
0, 0
0, 1
1, 0