進制(原碼,反碼,補碼)
- 一. 進制簡介
- 二. 二進制
一. 進制簡介
對于整數資料型別,有四種進制表示方式:
- 二進制(binary):0,1 ,滿2進1.以0b或0B開頭,
- 十進制(decimal):0-9 ,滿10進1,
- 八進制(octal):0-7 ,滿8進1. 以數字0開頭表示,
- 十六進制(hex):0-9及A-F,滿16進1. 以0x或0X開頭表示,此處的A-F不區分大小寫,如:0x21AF +1= 0X21B0

二. 二進制
Java整數常量默認是int型別,當用二進制定義整數時,其第32位是符號位;當是long型別時,二進制默認占64位,第64位是符號位
二進制的整數有如下三種形式:
- 原碼:直接將一個數值換成二進制數,最高位是符號位
- 負數的反碼:是對原碼按位取反,只是最高位(符號位)確定為1,
- 負數的補碼:其反碼加1,
計算機以二進制補碼的形式保存所有的整數,
- 正數的原碼、反碼、補碼都相同
- 負數的補碼是其反碼+1
為什么要使用原碼、反碼、補碼表示形式呢?
我們知道, 根據運演算法則減去一個正數等于加上一個負數, 即: 1-1 = 1 + (-1) = 0 , 所以機器可以只有加法而沒有減法,但是,原碼最大的問題就在于一個數加上他的相反數不等于零,因此我們可以利用反碼和補碼來解決這個問題,因為:
- 反碼:正數的反碼還是等于原碼
- 負數的反碼就是本身的原碼除符號位外,按位取反,
在計算機中,由于有位數的限制,一個數A減去另一個數B,相當于,數A加上(模減去數B),換句話說,模的意思是最大容量,相當于時鐘的模是12,從三點到五點需要順時針撥動2格,也可以逆時針撥動10格,而2+10=12(時鐘的模),而在計算機中,一個二進制數的模減去自身等于反碼加一
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/273719.html
標籤:其他
下一篇:Spatial-Temporal Multi-Cue Network for Continuous Sign Language Recognition



