美文网首页
算法_二进制左移和右移

算法_二进制左移和右移

作者: 萧修 | 来源:发表于2023-03-14 11:41 被阅读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函数
    与运算&、左移运算符<<、三目运算符== ? :
    */
    
    

    相关文章

      网友评论

          本文标题:算法_二进制左移和右移

          本文链接:https://www.haomeiwen.com/subject/lyahrdtx.html