1. 程式人生 > 實用技巧 >java-進位制轉換

java-進位制轉換

進位制轉換

二進位制:用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); //輸出的都是十進位制 } }

  編譯執行結果: