java位運算求一個整數的絕對值


 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 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM