計算機只能處理2進制數據(常常是補碼!),計算機內部沒有10進制和16進制,10進制是人類處理數據的習慣,Java利用API提供的的算法(方法)實現10進制的處理。16進制是便捷的2進制書寫格式。java
一切交給計算機處理的數據,都要轉化爲2進制。算法
計算機不認識正負數,因此本來二進制是沒有負數的,但由於運算須要,正負二進制是人爲規定的,因此纔有了補碼(補充的碼)。eclipse
計算機在輸入輸出的時候,依照人的習慣,利用算法實現10進制輸入輸出。spa
以4位補碼爲例:code
見下圖:blog
由圖中能夠看出從上到下逐一加1,而且以粉色橫線爲鏡面,上下互爲反碼,這也是補碼取反對稱現象,由此可得出——~n=-n-1(~n:n取反)ip
0x是16進制的前綴,0是8進制的前綴。0x7fffffff是最大的16進制數,0x80000000是最小的16進制數數學
eclipse中數字的2進制和16進制不顯示高位的0。class
1 package Test; 2 3 import java.util.Scanner; 4 5 public class Test { 6 public static void main(String[] args) { 7 System.out.println("請輸入要查看2進制的數字:"); 8 Scanner in = new Scanner(System.in); 9 int n = in.nextInt(); 10 System.out.println(n+"的2進製表示是:"+Integer.toBinaryString(n)); 11 System.out.println(n+"的16進製表示是:"+Integer.toHexString(n)); 12 System.out.println(~100);//使用公式~n=-n-1 13 } 14 }