栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java笔记-位运算符

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java笔记-位运算符

java中有7个位运算(&、|、^、~、>>、<<和>>>)

涉及的知识点:进制、原码、补码、反码。

&、|、^、~的运算规则如下图:


演示如下:

//位运算


public class BitOperator { 

	//编写一个main方法
	public static void main(String[] args) {

		//看推导过程
		//1. 先得到 2的补码 => 2的原码 00000000 00000000 00000000 00000010
		//   2的补码 00000000 00000000 00000000 00000010
		//2. 3的补码 3的原码 00000000 00000000 00000000 00000011
		//   3的补码 00000000 00000000 00000000 00000011
		//3. 按位&
		//   00000000 00000000 00000000 00000010
		//   00000000 00000000 00000000 00000011 
		//   00000000 00000000 00000000 00000010 & 运算后的补码
		//   运算后的原码 也是  00000000 00000000 00000000 00000010
		//   结果就是  2
		System.out.println(2&3);//2

		//推导
		//1. 先得到 -2的原码 10000000 00000000 00000000 00000010
		//2. -2的 反码 	    11111111 11111111 11111111 11111101
		//3. -2的 补码       11111111 11111111 11111111 11111110
		//4. ~-2操作        00000000 00000000 00000000 00000001运算后的补码
		//5. 运算后的原码 就是 00000000 00000000 00000000 00000001 => 1
		System.out.println(~-2);//1

		//推导
		//1. 得到2的补码 00000000 00000000 00000000 00000010
		//2. ~2操作     11111111 11111111 11111111 11111101  运算后的补码
		//3. 运算后的反码  11111111 11111111 11111111 11111100
		//4. 运算后的原码  10000000 00000000 00000000 00000011=>-3
		System.out.println(~2); //-3
	}
}
还有3个位运算符>>、<<和>>>,运算规则:

1)算术右移>>:低位溢出,符号位不变,并用符号位补溢出的高位
2)算术左移<<:符号位不变,低位补
03)>>>逻辑右移也叫无符号右移,运算规则是:低位溢出,高位补
04)特别说明:没有<<<符号

演示如下:

public class BitOperator02 { 

	//编写一个main方法
	public static void main(String[] args) {
		System.out.println(1 >> 2); //0
		System.out.println(1 << 2); //4
		System.out.println(4 << 3); // 4 * 2 * 2 * 2 = 32
		System.out.println(15 >> 2); // 15 / 2 / 2 = 3

		System.out.println(-10.4%3); // -1.4近似值

		int i=66;
		System.out.println(++i+i); //134
	}
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704917.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号