算法_二进制左移和右移

2023-03-14  本文已影响0人  萧修

左移运算:在计算机中存储的二进制数据,每位向左移动
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函数
与运算&、左移运算符<<、三目运算符== ? :
*/

上一篇 下一篇

猜你喜欢

热点阅读