【深入淺出-JVM】(2):原碼、反碼、補碼-創(chuàng)新互聯

計算機中有補碼表示 0

0 為正數
原碼 00000000 00000000 00000000 00000000
反碼 00000000 00000000 00000000 00000000 正數反碼等于原碼
補碼 00000000 00000000 00000000 00000000 正數補碼等于原碼

創(chuàng)新互聯-專業(yè)網站定制、快速模板網站建設、高性價比灤平網站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式灤平網站制作公司更省心,省錢,快速模板網站建設找我們,業(yè)務覆蓋灤平地區(qū)。費用合理售后完善,10多年實體公司更值得信賴。

0 為負數
原碼 10000000 00000000 00000000 00000000
反碼 11111111 11111111 11111111 11111111 負數反碼等于原碼符號位不變,其余取反
補碼 00000000 00000000 00000000 00000000 負數補碼等于反碼+1

用補碼
1-1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原 = [0000 0001]補 + [1111 1111]補 = [0000 0000]補=[0000 0000]原
用反碼
1 - 1 = 1 + (-1) = [0000 0001]原 + [1000 0001]原= [0000 0001]反 + [1111 1110]反 = [1111 1111]反 = [1000 0000]原 = -0

數值原碼反碼補碼
+00000 00000000 00000000 0000
-01000 00001111 11110000 0000

補碼、原碼、反碼轉換

負數原碼轉補碼,最高位不變,其余取反,然后 +1
10000001
11111110
11111111
負數補碼轉原碼,最高位不變,其余取反,然后+1 補碼->反碼->原碼->反碼->補碼 ,(二進制數,先-1再取反和先取反后+1,結果一樣)
11111111
10000000
10000001

負數反碼轉原碼
符號位不變,其余取反
11111111
10000000

區(qū)別:

  1. 8位二進制, 使用原碼或反碼表示的范圍為[-127, +127], 而使用補碼表示的范圍為[-128, 127].
    補碼可以多表示一個范圍,其實是利用補碼 10000000 的原碼是 = -128
  2. 原碼大的問題就是 一個數加上他的相反數不等于 0
  3. 已知補碼,求原碼的負數的補碼:符號位和數值位都取反,末位再加1

補碼

【深入淺出-JVM】(2):原碼、反碼、補碼

常用概念

  • 左移
    左移的規(guī)則只記住一點:丟棄最高位(符號位),0補最低位
  • 右移
    左邊空出的位用0或者1填補。正數用0填補,負數用1填補。注:不同的環(huán)境填補方式可能不同;
    低位右移溢出則舍棄該位。
  • 無符號右移
    左邊空出的位用0填補,低位右移溢出則舍棄該位。

感謝您的耐心閱讀,如果您發(fā)現文章中有一些沒表述清楚的,或者是不對的地方,請給我留言,您的鼓勵是作者寫作大的動力。

作 者 : @mousycoder

原文出處 : http://mousycoder.com/thinking-in-jvm/2/

創(chuàng)新互聯www.cdcxhl.cn,專業(yè)提供香港、美國云服務器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網絡助力業(yè)務部署。公司持有工信部辦法的idc、isp許可證, 機房獨有T級流量清洗系統配攻擊溯源,準確進行流量調度,確保服務器高可用性。佳節(jié)活動現已開啟,新人活動云服務器買多久送多久。

本文標題:【深入淺出-JVM】(2):原碼、反碼、補碼-創(chuàng)新互聯
網頁路徑:http://muchs.cn/article42/pepec.html

成都網站建設公司_創(chuàng)新互聯,為您提供自適應網站、云服務器、Google做網站、網站建設、全網營銷推廣

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯

綿陽服務器托管