1. 程式人生 > >巧用移位和按位與運算子輸出二進位制補碼

巧用移位和按位與運算子輸出二進位制補碼

一 問題描述
   給定任一整型值,輸出其二進位制補碼(即機器碼)。
二 求解思路
   整型值在機器中正是以二進位制補碼存放,在JAVA中,用print函式輸出的是其十進位制形式。&運算子會將兩邊的運算元按其二進位制形式逐個bit求與,並最終生成一個整型值(不同於邏輯與,生成的是boolean)。這樣,可利用位元1去逐位測試,結果不為0,說明待測試位為1,否則為0。將一個整型值的每一bit都確定了,其二進位制補碼也就確定了。
三 程式設計實現
   public class Bcode{
       
     public static void main(String[] args) {
      
          pBcode(-1);
       
       
    }
    static void pBcode( int i) {               
    System.out.print(i+"的二進位制補碼是:");
     
   
    for(int j = 31; j >=0; j--) {
   
      if(((1 << j) &  i) != 0)    //用 00000000000000000000000000000001移位實現位元"1"測試
        System.out.print("1");
      else
        System.out.print("0");
    }
  
  }

}
輸出結果為   -1的二進位制補碼是:11111111111111111111111111111111