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

Python012

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:补充一句,计算机内存里的逻辑存储位是非常复杂的,我这里即使讲得再清楚也无法保证你完全明白。

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

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

比如说float x=12.345

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

12.345000i

我也不太清除

但是,C是贝尔实验室的某两个人发明的,应该有很多习惯与英语有关,

英语中iteration这个词代表“迭代,循环,重复”

i应该是这个词的缩写,因为int i大多是用于迭代,循环

虽然不全是单词缩写,但是,变量的命名确实不是随意的,有实际意义的变量名在编写程序的过程中是非常重要的

所以,虽然没有确凿的证据表明i是iteration的缩写(不太可能找到确凿证据,这个i的使用应该延续了三四十年了,从有C的时候就开始用,没多少人关心i代表什么)

但是从i多用于迭代来看,应该是iteration的缩写,英语中circle也是循环的意思,但是此循环不同于iteration,计算机中的循环语句翻译成英文多是iteration(或者是loop)从来没有过circle。 迭代和循环其实是一个意思