java-進位制轉換
阿新 • • 發佈:2020-07-28
進位制轉換
二進位制:用0和1表示,滿2進1 00001110
最高位是符號位,符號位0:正數,1:負數
以00001110為例,對應的十進位制為14 1*2^3+1*2^2+1*2^1=14
00001110 符號位是0,為正數。
10001110 -14的原碼
11110001 -14的反碼
11110010 -14的補碼=-14的反碼+1
計算機底層都以補碼的方式來儲存資料!(無論正負)
01111111 +127
11111111 -127的原碼
10000000 -127的反碼
10000001 -127的補碼
10000000 -128的反碼
八進位制:012
十進位制:124
十六進位制:0x110A或0X110A
二進位制與十進位制的轉換
十進位制-->二進位制:除2取餘的逆
舉例:
從下往上看餘數 00001101,就是13所對應的的二進位制。
二進位制與其他進位制的轉換
如:二進位制轉八進位制 2^3=8 轉換的時候3個一位:如111轉換成7
進位制轉換呼叫方法:
轉換成二進位制:static String toBinaryString(int i)
轉換成八進位制:static String toOctalString(int i)
轉換成十六進位制:static String toHexString(int i)
進位制的表示例子:
/* 二進位制: 十進位制:
*/ class BinaryTest{ public static void main(String[] args){ int num1 = 0b110;//2進位制 int num2 = 110;//10進位制 int num3 = 0127;//8進位制 int num4 = 0x110A;//16進位制 System.out.println("num1="+num1); System.out.println("num2="+num2); System.out.println("num3="+num3); System.out.println("num4="+num4); //輸出的都是十進位制 } }
編譯執行結果: