-注明
- 由于计算机不能做减法,因此需要将数值变成负数后相加。如5-5需变成5+(-5).
- 负数是以补码形式存储,0没有补码。数值的首位为符号位。
-
由于二进制的设计,所以计算机中的小数不可能达到准确的,只能达到部分准确。想安全的运算有两种办法
- 不拿小数来运算,而是当成整数来运算。(属于极端情况)
- 忽略后面不影响程序的小数部分。
-补码
做减法时,由于计算机只能做累加而不能做减法,所以我们需要用到补码形式来得到正确的值。
补码是将数值确定一个长度后将数值取反加一。这样得到的值与任何值相加都是没有任何问题。
而你的长度将决定你的数值范围。
例如:(数值)0001→(取反后)1110→(+1)1111.
-左移与右移
左移用来做乘法,将数值左移几位相当于乘以2的几次方,空位补0(左移3位=2的三次方)
右移用来做除法,而右移有两种情况,逻辑右移与算术右移。
逻辑右移 | 在右移时任何情况都补0 |
逻辑右移 | 在右移时根据首位来决定补0或补1 |
-其他运算(非,与,或,异或)
非 | 取反,0变1,1变0 |
与 | 只有两者都为真时为真。1 · 1=1 |
或 | 其中一个为真是就为真 |
异或 | 两者之间相同则相斥,0 · 0=0 ; 0 · 1=1 ; 1 · 0=1; 1 · 1=0 |