C语言中的 i! 是什么意思

Python013

C语言中的 i! 是什么意思,第1张

这个是c语言中的,按位取反操作

举个例子

~100=-101,

首先看等号左边

(100)

的二进制表示为:

0110

0100

按位取反的意思就是每一位取反,0变1,1变0

所以:

~100

的二进制表示为:1001

1011

所以等号左边=1001

1011

再看右边

-101.

一旦看到出现负数,那么这个数一定是按有符号数的规则来表示的。一个二进制数

按位取反并加一以后就可以得到它自己的负数的补码,也就是说:

~x+1=-x

所以,我们把101按位取反加一

先取反:

~101=10011010

再加一:

~101+1=10011011=-101

所以等号右边=10011011=左边,所以等号成立。

p.s:补充一句,计算机内存里的逻辑存储位是非常复杂的,我这里即使讲得再清楚也无法保证你完全明白。

一般来说,汇编语言的书的开头部分会详细讲解这部分知识以服务于汇编语言,请参阅之。

是自增运算,而且是先加1后再执行。

例如:

int i,k

for(i=0,k=0i<5i++)

{

k += i++

}

第一次进入时i的初始值是0,k的初始值也是0。这时的i++并没有在本次语句中起到加一的作用,而是要在本次操作结束后再起作用,也就是在第一次循 环完全结束后。进入循环体本人看,k += i++这时由于这里的是i++(需要先操作后加1),所以,k的值理所当然是0了,而在本句结束后i的值就进行了加1操作,在本次循环结束时又进行了一 次加1操作,所以本次循环结束后k=0,i=2;

第二次进入时i的初始值是2,k的初始值是0。同理分析,在k += i++后k的值为2了,而i的值也由于两次i++变为了4。所以,本次循环结束后k=2,i=4;

第三次进入时i的初始值是4,k的初始值是2。同理分析,在k += i++后k的值由于经过原来的值与i当前的值相加后变成了6,而i的值同样是在最后加了两个1。所以在本次循环结束后k=6,i=6;

第四次准备进入循环时,发现i的值已经比5大了。因此,程序终止。最后k的值为6,i的值也为6。

这里的i是格式符以外的“其它字符”,就是“照原样输出”的意思。

比如说float x=12.345

则printf("%fi",x)的结果就是输出:

12.345000i