移位运算 Volantis Team 发布于:Apr 3, 2020 次浏览 >>> 、>> 、<<>>带符号右移,高位根据数据正负,正补0,负补112345678910111213/** * 带符号右移 **/// num = 5 = 00000000 00000000 00000000 00000101 // num >> 1 = 00000000 00000000 00000000 00000010System.out.println(num >> 1);// num2 = -5 = 原码 10000000 00000000 00000000 00000101 // 反码 11111111 11111111 11111111 11111010// 补码 11111111 11111111 11111111 11111011// num2 >> 1 = 补码 11111111 11111111 11111111 11111101// 原码 10000000 00000000 00000000 00000011 (非符号位取反+1)// 因此:num2 >> 1 = -3System.out.println(num2 >> 1 ); >>>无符号右移,高位补012345678910111213/** * 无符号右移 **/// num = 5 = 00000000 00000000 00000000 00000101 // num >> 1 = 00000000 00000000 00000000 00000010 System.out.println(num >>> 1);// num2 = -5 = 原码 10000000 00000000 00000000 00000101 // 反码 11111111 11111111 11111111 11111010// 补码 11111111 11111111 11111111 11111011// num2 >> 1 = 补码 01111111 11111111 11111111 11111101// num2 = 2147483645System.out.println(num2 >>> 1); << 左移运算符。12345678910111213141516171819int num = 1; num << 1; // 相当于1 * 2,可以用于提高乘法效率/** * 左移 */// num2 = 5 = 00000000 00000000 00000000 00000101 // num2 << 1 = 00000000 00000000 00000000 00001010// num2 = 10 System.out.println(num2 << 1);// num2 = -5 = 原码 10000000 00000000 00000000 00000101 // 反码 11111111 11111111 11111111 11111010// 补码 11111111 11111111 11111111 11111001// num2 = 补码 11111111 11111111 11111111 11110110// num2 = 原码 10000000 00000000 00000000 00001010 = -10System.out.println(num << 1); 本页文档最后更新于:Dec 5, 2021 Coding Java Coding Java 数据库ACID与索引 ACID事务的特性: 原子性、一致性、隔离性、持久性 一致性:这里的一致性和分布式对应的一致性是不相同的。 数据库的一致性:对关系数据库完整性的保证,事务开始之前和事务结束之后关系数据库的完... == 和 equals的区别 ==: == 比较的是两个操作数时候是同一个对象,比较引用 两边操作数必须是同一类型才能编译通过。 比较的是地址,如果是具体的数字比较,值相等则为true。 1234567891011121...