左移运算:在计算机中存储的二进制数据,每位向左移动
int类型在计算机占4个字节,32位。
数值范围:-2147483648~2147483647
如十进制:
1
二进制:
00000000000000000000000000000001
左移1位:
00000000000000000000000000000010
负数在计算中取反+1存储
int b = -1;
10000.......00001
111111...111110 取反
1111111...11111 +1
1111111111111111111111111111111
swift语言获取int32最大
var a = Int32.max
print(a)
右移
int a = -256789;
11111111111111000001010011101011
a >> 1;//带符号右移
11111111111111100000101001110101
a >>> 1;//不带符号右移
01111111111111100000101001110101
计算机:负数存储 对取反+1,为了底层运算方便,提升性能。
最小值取反是本身
-2147483648 取反还是 自己
实例代码 打印数的32位
public class 左移运算 {
static void print(int nums) {
for (int i = 31; i >= 0; i--) {
System.out.print( (nums & (1<<i)) == 0 ? "0" : "1");
}
System.out.println();
}
public static void main(String[] args) {
int b = -256789;
print(b);
}
}
/**
定义Java类 Java输出命令 静态static main函数
与运算&、左移运算符<<、三目运算符== ? :
*/
网友评论