python中没有自加和自减运算符
i += 1
i -= 1
kC、java自加和自减运算符
int i = 10
i++ // 11
++i // 12
i-- // 11
--i // 10
int i = 10
int b = i++; // i = 11 b = 10
int c = ++i; // i = 12 c = 12
int d = --i; // i = 11 d = 11
int e = i--; // i = 10 e = 11
优先级别级别:
前加加和前减减,优先级别非常高,仅次于括号
后加加和后减减,优先基本非常低,比赋值符还要低
位运算符:
在电子计算机中,数据都是以二进制保存,所以数据的运算都是基于二进制位运算
&
|
^
~
<<
>>
计算机底层知识:
计算机底层记录数据的本质是使用半导体,进行二级制数据的记录
一个二极管: 0/1 位(bit) b
8 字节(byte) B
1K 1024B
1M 1024K
1G 1024M
1T 1024G
1P 1024T
1E 1024P
……
1B = 8b
11 0000100 0010
byte类型进行计算
10 + 11
0000 1010 0000 1011
0000 1010
0000 1011
---------
0001 0101
如何让计算机记录负数?
让二进制的最高位不再进行数据记录,而是充当符号位
0 表示正数
1 表示负数
0000 0000
如果是无符号的一个字节中:
0~255 256个数字
有符号的一个字节中:
-128~127 256个数字
2 0000 0010
-3 1000 0011
2 - 3 = -1
0000 00010
1000 00011
-----------
1000 00101 -5 错误了
只要把二进制的数据稍微变一下,就可以正常的运算了(针对的是负数)
原码:十进制转换后的二进制 1000 0011
反码:原码符号位不变,其余个位统统取反 1111 1100
补码:反码 + 1 1111 1101
0000 0010
1111 1101
----------
1111 1111 补码
1111 1110 反码
1000 0001 -1
计算机中,数字都是以补码存储和运算符