举个例子
~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:补充一句,计算机内存里的逻辑存储位是非常复杂的,我这里即使讲得再清楚也无法保证你完全明白。
一般来说,汇编语言的书的开头部分会详细讲解这部分知识以服务于汇编语言,请参阅之。
首先你得明白一下几点:
每一条语句都有一个返回值。
m++是先赋值后自加,++m先自加后赋值。(这里的赋值就是这条语句返回一个值的意思)。
m++,m--。就是加减的不一样,我还是帮你理解 m++ 和++m的意思吧。
比如:
int a,b,m=1,n=1
a=m++
b=++n
最后a=1,m=2,b=2,n=2.
对于a=m++,意思是 m++ 这条语句先返回m,再执行自加操作。
对于b=++n,意思是 ++n 这条语句先让n自加1,再返回n。