字节跳动 echarts LVS vue组件 LeetCode OpenCV4 Transformer selenium cakephp 网络营销推广 yii binding yii2 Keys.js react脚手架 jquery选择子元素 oracle自增长 plsql连接mysql数据库 js控制台打印 mysql时间戳转日期 python运算 python的array python中time java对象 java集合 java环境配置 javaworld 学习java基础 java获取现在时间 java环境下载 php语言入门 超级兔子ie修复专家 unix操作系统下载 通达信金融终端官网 pr转场特效下载 风火云 苍灵世界 任意屏官网 万能播放器电脑版 茸好珠
当前位置: 首页 > 学习教程  > 编程语言

java中的移位操作

2021/2/13 18:10:12 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

文章目录一、左移 <<二、右移1、有符号右移 >>2、无符号右移三、补充一、左移 << 向左移动&#xff0c;高位丢弃&#xff0c;低位用0补齐 不溢出的情况下num<<1相当于num*2 例如 int i Integer.MIN_VALUE;System.out.println(Integer.toBinaryString…

文章目录

    • 一、左移 <<
    • 二、右移
        • 1、有符号右移 >>
        • 2、无符号右移
    • 三、补充

一、左移 <<

向左移动,高位丢弃,低位用0补齐
不溢出的情况下num<<1相当于num*2
例如

        int i = Integer.MIN_VALUE;
        System.out.println(Integer.toBinaryString(i));
        // 10000000000000000000000000000000
        System.out.println(Integer.toBinaryString(i << 1));
        // 0

二、右移

1、有符号右移 >>

向右移动,高位用符号位补齐,低位丢弃
不溢出的情况下num>>1相当于num/2

        int i = Integer.MIN_VALUE;
        System.out.println(Integer.toBinaryString(i));
        // 10000000000000000000000000000000
        System.out.println(Integer.toBinaryString(i >> 1));
        // 11000000000000000000000000000000

任何一个负数,如果一直右移下去,最终都会得到 -1

        System.out.println(Integer.toBinaryString(i >> 31)); //(i < 0)
        // 11111111111111111111111111111111(-1)

2、无符号右移

向右移动,高位用0补齐,低位丢弃

        int i = -3;
        System.out.println(Integer.toBinaryString(i));
        // 11111111111111111111111111111101
        System.out.println(Integer.toBinaryString(i >>> 1));
        // 1111111111111111111111111111110(第一位的0没有显示)
        System.out.println(i >>> 1);
        // 2147483646

任何一个数,如果一直无符号右移下去,最终都会得到0

        System.out.println(i >>> 31 >>> 1);

三、补充

当移位的位数大于或等于数据类型的表示位数时,会先对移位的位数取模
举个例子:对于int,其表示位数时32位,如果我们要对一个int型的整数num做移位操作,
移动位数为33,那么,计算时会先将33对32取模得到1,然后对num进行1位的移位操作。
如果移动位数是32,那么,不做操作
这也是我上面最后一行代码对i的移位分两次

System.out.println(i >>> 31 >>> 1)System.out.println(i >>> 32)的结果是不一样的


本文链接: http://www.dtmao.cc/news_show_700196.shtml

附件下载

上一篇:第2天

下一篇:关系选择器

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?