1.把123分別轉換爲二進制、八進制和十六進制
2.把100101011010分別轉換爲八進制、十進制和十六進制
3.把0564分別轉換爲二進制、十進制和十六進制
4.把0x0a2b分別轉換爲二進制、八進制和十進制
5.分別寫出17的原碼、反碼及補碼
6.分別寫出-17的原碼、反碼及補碼
7.已知一個數的補碼是1111 0010,求這個數是多少。
8.求1100 0011 加上1101 0101所得的數是多少(這兩個二進制數均是無符號數)。
class Test
{
public static void main(String[] args)
{
//1.把123分別轉換爲二進制、八進制和十六進制
System.out.println("二進制:"+Integer.toBinaryString(123));
System.out.println("八進制:"+Integer.toOctalString(123));//沒有符號位
System.out.println("十六進制:"+Integer.toHexString(123));
//2.把100101011010分別轉換爲八進制、十進制和十六進制
System.out.println("八進制:"+Integer.toString(Integer.parseInt("100101011010",2), 8));//parseInt第一個參數一定要是字符串形式,先轉成十進制,再轉成指定進制
System.out.println("十進制:"+Integer.toString(Integer.parseInt("100101011010",2), 10));
System.out.println("十六進制:"+Integer.toString(Integer.parseInt("100101011010",2), 16));
//3.把0564分別轉換爲二進制、十進制和十六進制
System.out.println("二進制:"+Integer.toString(Integer.parseInt("0564",8), 2));
System.out.println("十進制:"+Integer.toString(Integer.parseInt("0564",8), 10));
System.out.println("十六進制:"+Integer.toString(Integer.parseInt("0564",8), 16));
//4.把0x0a2b分別轉換爲二進制、八進制和十進制
String q4 = "0x0a2b".substring(3);
System.out.println("二進制:"+Integer.toString(Integer.parseInt(q4,16), 2));//不能帶前綴
System.out.println("八進制:"+Integer.toString(Integer.parseInt(q4,16), 8));
System.out.println("十進制:"+Integer.toString(Integer.parseInt(q4,16), 10));
//5.分別寫出17的原碼、反碼及補碼||都相同
System.out.println("原碼、反碼及補碼:"+Integer.toBinaryString(17));//Byte沒有此方法
//6.分別寫出-17的原碼、反碼及補碼 (源碼算法不會)
int q6 = -17;
System.out.println("補碼:"+Integer.toBinaryString((-q6)));
System.out.println("反碼:"+Integer.toBinaryString(q6-1));
//7.已知一個數的補碼是1111 0010,求這個數是多少。||一個數的補碼就是其二進制
System.out.println("十進制:"+Integer.parseInt("11110010",2));
//8.求1100 0011 加上1101 0101所得的數是多少(這兩個二進制數均是無符號數)
System.out.println("十進制:"+( Integer.parseInt("11000011",2) + Integer.parseInt("11010101",2)));
}
}