1. 程式人生 > 其它 >java基礎--進位制+位運算

java基礎--進位制+位運算

進位制+位運算

package week01.進位制and位運算;

public class BinaryTest {

   public static void main(String[] args) {
       int n1 = 0b1010;//2進位制
       int n2 = 01010;//8
       int n3 = 1010;//10
       int n4 = 0X1010;//16
       System.out.println(n1);
       System.out.println(n2);
       System.out.println(n3);
       System.out.println(n4);

       //x進位制轉換為10進位制
       //公式....


       //10進位制轉換x進位制
       //輾轉相除法
       
  }

}

原碼,反碼,補碼

![image-20220419165750722](存放typora圖片/image-20220419165750722.png

java中有7個位運算子號(^,&,|,~,<<,>>,>>>)

package week01.進位制and位運算;

public class 原碼反碼補碼 {

   public static void main(String[] args) {
       int a = 2;
       int b = 3;
       System.out.println(a & b);
       System.out.println(a | b);
       System.out.println(a ^ b);
       System.out.println(~a);
       System.out.println(~b);
  }

}
2原碼 00000000 00000000 00000000 00000010
因為2是正數三碼合一
對於2取反
    11111111 11111111 11111111 11111101 補碼
這個就變成負數了 補碼 = 反碼 + 1
所以反碼就是
11111111 11111111 11111111 11111100
求出原碼
  00000000 00000000 00000000 00000011
  就是3
   
1.正數三碼合一
2.運算用補碼運算
3.負數的時候補碼 = 反碼 + 1;
4.第一位(符號位)0表示整數 1表示負數
5.負數原碼跟反碼,符號位不變,其餘變成相反的
6