Java SE(12) 擴充套件——進位制轉換
數制:按照進位原則進行計數稱為進位技術制。
不同的數制有不同的基數和位權。
目錄
基數
概念:每種數制中數碼的個數稱為該數制的基數。
數制 基數 數碼 二進位制 2 0 1 八進位制 8 0 1 2 3 4 5 6 7 十進位制 10 0 1 2 3 4 5 6 7 8 9 十六進位制 16 0 1 2 3 4 5 6 7 8 9 A B C D E F
逢2進1
逢8進1
逢10進1
逢16進1
位權
概念:在每個數制中,一個數碼所處位置的不同,代表的數值大小不同,稱為具有不同的位權。
例如:二進位制 1111.11 最左邊的1代表1*2^3=16,最右邊的1代表1*2^-2=0.25.
八進位制 2222.22 2 2*8^3 2*8^-2
十進位制 3333.33 3 3*10^3 3*10^-2
十六進位制 4444.44 4 4*16^3 4*16^-2
書寫規則
書面書寫規則
方式一:在數字後加英文字母
B(binary)表示二進位制數,二進位制101可寫成101B。
O(octonary)表示八進位制數,八進位制101可寫成101O或101Q。
D(decimal)表示十進位制數,十進位制101可寫成101D。
H(hexadecimal)表示十六進位制數,十六進位制101可寫成101H。
方式二:在括號外面加數字下標
程式設計書寫規則
二進位制整數,要求0b或者0B開頭,如:0b11
十進位制整數,如:99, -500, 0
八進位制整數,要求以 0 開頭,如:015
十六進位制數,要求 0x 或 0X 開頭,如:0x15
進位制轉換
低進位制轉高進位制
位權展開求和法
1. 二進位制——>十進位制
例如: 1 0 1 1 0 0 1 . 1 0 1 1 1 B
=1*2^6+0+1*2^4+1*2^3+0+0+1*2^0+1*2^-1+0+1*2^-3+1*2^-4+1*2^-5
= 64 +0+ 16 + 8 +0+0+ 1 + 0.5 +0+ 0.125+0.0625+0.03125
= 89.71875D
2. 二進位制——>八進位制(取三合一——>各自位權展開求和)
以小數點為界,分別向左和向右分成三組一位,不夠三位補零,分完組後對應成八進位制數。
例如: 1 011 001 . 101 11 B
=001 011 001 . 101 110 B
= 1 3 1 . 5 6 Q
3. 二進位制——>十六進位制(取四合一——>各自位權展開求和)
以小數點為界,分別向左和向右分成四組一位,不夠四位補零,分完組後對應成十六進位制數。
例如: 101 1001 . 1011 1 B
= 0101 1001 . 1011 1000 B
= 5 9 . B 8 H
4. 八進位制——>十進位制
例如: 1 6 Q
=1*8^1+6*8^0
= 8 + 6
=14D
5. 八進位制——>十六進位制
方法:八進位制——>十進位制——>十六進位制
高進位制轉低進位制
除二倒向取餘法
1. 十進位制——>二進位制
整數部分除2倒向取餘,小數部分乘2正向取整。
例如:89.71875D=1011001.10111B
2. 八進位制——>二進位制
方式一:八進位制的每位除2倒向取餘,每個對應三個二進位制位,不足時在最左邊補零。
例如:276.15Q=10 111 110.001 101B
方式二:每一個八進位制展開成三個二進位制位即可(取一分三)。
例如: 2 7 6 . 1 5 Q
=010 111 110 . 001 101 B
3.十六進位制——>二進位制
方式一:十六進位制的每位除2倒向取餘,每個對應四個二進位制位,不足時在最左邊補零。
例如:3AC.1EH=11 1010 1100.0001 1110 B
方式二:每一個十六進位制展開成四個二進位制位即可(取一分四)。
例如: 3 A C. 1 E H
=0011 1010 1100 . 0001 1110 B
4. 十進位制——>八進位制
整數部分除8倒向取餘。
例如:14D=16Q
相關文章
- 初學java進位制轉換方面補充學習Java
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- Qt進位制轉換(十進位制轉十六進位制)QT
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- 進位制轉換
- 十六進位制轉換為八進位制
- 十六進位制轉換為十進位制
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 二進位制轉十進位制快速轉換方法
- lua之m進位制轉換為n進位制-任意進位制轉換演算法演算法
- Oracle 12CR2查詢轉換之表擴充套件Oracle套件
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- java進位制、編碼轉換記錄Java
- JavaScript 進位制轉換JavaScript
- 1.5進位制轉換
- 進位制的轉換
- Swift UIColor 新增從十六進位制值初始化的擴充套件SwiftUI套件
- JavaScript十進位制轉換為二進位制JavaScript
- shell 中轉換16進位制10進位制
- Oracle二進位制與十進位制轉換Oracle
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- OpenGL版本與OpenGL擴充套件機制(轉)套件
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 位擴充套件和位截斷套件
- 十進位制與二進位制互相轉換指南
- 進位制均值-進位制轉換+最大公約數
- Java 徹底搞清楚進位制轉換Java
- 【轉帖】Oracle中的二進位制、八進位制、十進位制、十六進位制相互轉換函式Oracle函式
- 數的進位制轉換
- python 進位制轉換Python
- c#進位制轉換C#
- 進位制轉換圖解圖解
- 【python】進位制轉換Python
- (轉)【iOS 開發】二進位制、十進位制、十六進位制相互轉換的方法iOS