補碼是為了解決 0 的符號兩個編碼的問題 。在補碼運算中 [1000 0000] 就是 -128 。也就得出來了我們的輸出值 -128 。
讓我們看一下 129 的計算方式:
首先知道 129 的二進制是 [1000 0001] , 轉換成 8 bit之后就變成首尾符號位為負數 ,
然后得出補碼 [11111 1111] 也就是 -127 了 。
從這里我們也就可以根據補碼知道了 byte 數據類型的取值范圍:
[1111 1111] ~ [0111 1111] 也就是 -128 ~ 127 。
這里總結一下原碼 , 反碼 , 補碼的大概含義 。
原碼:原碼就是用第一位表示符號 , 其余位表示值 , 就如同上面的 16 位 [0000 0000 1000 0001] 。
反碼: 正數的反碼是原碼本身 , 負數的反碼是在原碼的基礎上 , 其余各個位取反 。
上面的值就變成:[0000 0000 1000 0001]
補碼:正數的補碼就是其本身 , 負數的補碼就是在原碼的基礎上 , 其余的各位都取反 , 并在最后一位1 。也就是在反碼的基礎上1 。
最終的補碼變成:[0000 0000 1000 0001] 也就是129 。
從這里也就可以看出來 , 我們在進行數據處理的時候盡量不要用位數大的數據類型轉換成小的數據類型 , 除非你很清楚這樣轉換沒有問題 。
浮點類型的強制轉換以上說的都是整數的強制轉換問題 , 浮點型的也可以轉換 。這里做兩個演示 。
這里就是要引入浮點和整型進行轉換或者運算的時候出現的問題 。對于金融來說 , 很少使用 float 和 double 進行運算和使用 。推薦使用 BigDecimal 對象 。具體為什么 。了解原理可以參閱 : IEEE 754標準 。后期有時間再寫一篇詳細的原因 。主要還是二進制位的運算區別 。
數據類型的轉換 , 先說到這里吧 。關注我 。后續更多基礎到實戰的內容 。雖慢但永不停更 。
推薦閱讀
- 我來教你Word 2013中輸入編號的快捷方法介紹 我來教你吧日劇百度云資源
- 教你wps2007中把一整頁刪除的操作方法 教你如何反懟回復
- 教你wps2007中關閉屏幕提示功能的相關操作步驟 教你wps怎么刪除空白頁
- 五百越南盾換人民幣多少人民幣多少人民幣,越南500元錢 換中國人民幣多少錢
- 夏天怎么防止貓咪中暑 如何防止貓咪中暑
- 小編分享在三星s10 中設置系統主題的圖文教程。
- 小編教你在三星s10 中刪除瀏覽器記錄的圖文教程。
- 我來教你在魅族note9中更換系統主題的方法講解。
- 我來分享在魅族手機中關閉天氣預報的方法介紹。
- 天門山景區玩多少時間,您好安排了大概一天的時間游天門山看資料說有東中西線請問應
