二進制的最高位表示符號位。1表示負數,0表示正數
負數表示不是隻將最高位變成1其他位不變,數據的存儲規則是:最高位變1,其他位用補碼的形式出現(補碼錶示再源碼的基礎上去翻再加1)
因爲爲了表示加減法所有才用補碼的方式表示
1 00000001
+ -1 11111111
= 00000000
位運算有移位運算和邏輯運算
左移 << 向左移動,右邊低位補0 高位捨棄 左移一位相當於乘以2
右移 >> 向右移動,右邊的捨棄掉左邊補啥取決於原來是1就是1,原來是0就是0
所以如果正數運算的時候位數超出了原來的位數,所有原來的符號位進位,導致結果成爲了負數