1 import java.util.Scanner; 2 3 public class Question1 { 4 public static void main(String[] args) { 5 //從鍵盤得到一個值 6 Scanner sc = new Scanner(System.in); //聲明一個標准輸入掃描器 7 System.out.println("請輸入一個整數:"); 8 int n = sc.nextInt(); //得到整數 9 sc.close(); //關閉掃描器 10 11 //調用轉換為絕對值的函數 12 n=ToAbs(n); 13 System.out.println("絕對值為:" + n); 14 } 15 16 //取絕對值方法 17 //int類型存入是以二進制補碼的形式在內存中,要取絕對值,只需要改變其符號位 18 public static int ToAbs(int n) { 19 int i = n >> 31; //int 為32位,右移31位得到符號位,賦值給i,若為正,則i==0;負,i==-1 20 return ((n ^ i) - i); //一個數^0==原數,數^-1==數的絕對值-1 ==》 絕對值=負數異或-1取反+1 21 } 22 } 23