案例代碼:
package com.neuedu.demo;
public class Demo1 {
/**
* 二進制數的表示形式:原碼杠茬,反碼再芋,補碼;
* 1.正數
* 原碼奠衔,反碼,補碼一樣
* 2.負數
* 原碼:10000000 00000000 00000000 00000001
* 反碼:11111111 11111111 11111111 11111110
* 補碼:11111111 11111111 11111111 11111111
*
*
* 左移:<< 例如:2<<1
* 原碼:00000000 00000000 00000000 00000010
* <<
* 0 0000000 00000000 00000000 00000010 0
* 結果:0000000 00000000 00000000 000000100
*
* 左移:<< 例如:-2<<1
* 原碼:10000000 00000000 00000000 00000010
* <<
* 反碼:11111111 11111111 11111111 11111101
* +1
* 補碼:11111111 11111111 11111111 11111110
*
* 1 1111111 11111111 11111111 11111110 0
*
* 結果:1111111 11111111 11111111 111111100
*
* 反碼:1000000 00000000 00000000 000000011
*
* 補碼:1000000 00000000 00000000 000000100
*
* 最總結果:1000000 00000000 00000000 000000100
*
*
* 右移:>>
*
* 正數:4>>1
* 原碼:0000000 00000000 00000000 000000100
*
* >>
* 0 0000000 00000000 00000000 00000010 0
*
* 結果:00000000 00000000 00000000 00000010
*
* 負數:-4>>1
*
* 原碼:1000000 00000000 00000000 000000100
*
* 反碼:1111111 11111111 11111111 111111011
* +1
* 補碼:1111111 11111111 11111111 111111100
*
* >>
* 1 1111111 11111111 11111111 11111110 0
* 結果:11111111 11111111 11111111 11111110
*
* 結果反碼:
* 10000000 00000000 00000000 00000001
* 結果補碼:
* 10000000 00000000 00000000 00000010
*
* 無符號右移:>>>
* 正數:4>>>1
* 原碼:0000000 00000000 00000000 000000100
*
* >>
* 0 0000000 00000000 00000000 00000010 0
*
* 結果:00000000 00000000 00000000 00000010
*
*
* 負數:-4>>>1
* 原碼:10000000 00000000 00000000 00000100
*
* 反碼:11111111 11111111 11111111 11111011
* +1
* 補碼:11111111 11111111 11111111 11111100
*
* >>>
* 011111111 11111111 11111111 1111110 0
* 結果:011111111 11111111 11111111 1111110
*
*
*
*
*/
public static void main(String[] args) {
System.out.println(2<<1);
System.out.println(2 * 2);
System.out.println(-2<<1);
System.out.println(4>>1);
System.out.println(-4>>1);
System.out.println(4>>>1);
System.out.println(-4>>>1);
}
}
視頻鏈接:留言私聊L寥ⅰ9榻铩!5蟀丁脏里!