案例代码:
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);
}
}
视频链接:留言私聊!!!!!