@Test public void testName() throws Exception { /* * 負整數的二進制是怎麼存的? * 在計算機中,負數以其正值的補碼形式表達。 * 什麼叫補碼呢?這得從原碼,反碼提及。 * ----------------------------------------------- * 5的原碼(概念:一個整數,按照絕對值大小轉換成的二進制數,稱爲原碼。) * 00000000 00000000 00000000 00000101 5 * * 5的反碼(概念:將二進制數按位取反,所得的新二進制數稱爲原二進制數的反碼。取反操做指:原爲1,得0;原爲0,得1。(1變0; 0變1)。反碼是相互的。) * 11111111 11111111 11111111 11111010 * * 5的補碼(概念:反碼加1稱爲補碼。) * 11111111 11111111 11111111 11111011 -5 */ System.out.println(Integer.toBinaryString(5)); // 5的原碼:101 System.out.println(Integer.toBinaryString(~5)); // 5的反碼:11111111111111111111111111111010 System.out.println(Integer.toBinaryString(~5 + 1)); // 5的補碼:11111111111111111111111111111011 System.out.println(Integer.toBinaryString(-5)); // -5的二進制,和5的補碼相同:11111111111111111111111111111011 }