13117人加入学习
(67人评价)
Java编程学习第一季

制作于2018年2月8日

价格 免费
/*
9
原码:00000000 00000000 00000000 00001001
-9
原码:10000000 00000000 00000000 00001001
反码:11111111 11111111 11111111 11110110
补码:11111111 11111111 11111111 11110111
7
原码:00000000 00000000 00000000 00000111
-7
原码:10000000 00000000 00000000 00000111
反码:11111111 11111111 11111111 11111000
补码:11111111 11111111 11111111 11111001
*/
public class BitOperator{
	public static void main(String[] args){
		System.out.println(9&7);
		System.out.println(9&-7);
		System.out.println(-9&-7);
		System.out.println(-9|-7);
		System.out.println(~-9);
		System.out.println(-9^-7);
		System.out.println(-9<<3);
		System.out.println(-9>>3);
		System.out.println(-9>>>3);
	}
}

 

[展开全文]

<< 左移 高位抛弃 低位用0补全

>> 右移 高位照符号位补齐 低位抛弃

>>> 无符号位右移 高位按0补齐 低位抛弃

 

[展开全文]

最后-9>>>3 计算结果与运行不符的原因。

个人摸索:

计算机应该是默认处理int 类型 int 4个字节 

一共32位

 

所以要按32位算才对    

-9 原码:

10000000 00000000 00000000 00001001

-9 反码:

11111111 11111111 11111111 11110110

-9补码
11111111 11111111 11111111 11110111

 

-9>>>3

00011111 11111111 11111111 11111110

变为整数 直接用计算器二进制 转换十进制

验证结果536870910

与运行结果一致 

 

 

 

[展开全文]

授课教师

SiKi学院老师

课程特色

下载资料(1)
视频(98)