java 中的左移的运算符为<

但是使用的时候要注意符号位的问题,如下:

public void shiftTest() {

int n = 1;

while (n != 0) {

n = n << 1;

System.out.println(Integer.toBinaryString(n));

}

}

输出:

10

100

1000

10000

100000

1000000

10000000

100000000

1000000000

10000000000

100000000000

1000000000000

10000000000000

100000000000000

1000000000000000

10000000000000000

100000000000000000

1000000000000000000

10000000000000000000

100000000000000000000

1000000000000000000000

10000000000000000000000

100000000000000000000000

1000000000000000000000000

10000000000000000000000000

100000000000000000000000000

1000000000000000000000000000

10000000000000000000000000000

100000000000000000000000000000

1000000000000000000000000000000

10000000000000000000000000000000

0

这里需要关注的是最后两行的输出。

首先是倒数第二行,我们把数字每4位分隔开来看,为1000 0000 0000 0000 0000 0000 0000 0000,回想一下,Java中的int型的数据是32位的有符号数,并且第一位为符号位,而当前这个数字已经显示为32位了,因此说明初始的1已经被位移到了整个int的首位,也就是符号位,此时,这个数字已经变成了一个负数,并且值为Java中int的最小值:-2147483648。

而最后一行,说明此时,1在被位移至整个int的最左边之后,再次左移,此时被移除了整个数字,而整个数字变为了0。

还有一点要注意的是,Java中int的位数为32,因此若左移运算符右侧的数字大于32的话,实际运算的位移的位数为其对32取余的数字。

如:

n = 1;

System.out.println(n << 33);

输出:

2

因为33 % 32 = 1,所以,实际结果为将1 左移1位的结果,即2。

java 左移负数_Java中的左移时的负数问题相关推荐

  1. java右移位_java中的左移 右移

    1. 左移运算符 左移运算符< 1)它的通用格式如下所示: value << num num 指定要移位值value 移动的位数. 左移的规则只记住一点:丢弃最高位,0补最低位 如果 ...

  2. map java 初始化赋值_Java 中 HashMap 初始化时赋值(示例代码)

    1.HashMap 初始化的文艺写法 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器.普通青年一般会这么初始化: HashMap map = new HashMap ...

  3. java 二进制 表示负数_java中的负数表示

    下面这行代码的输出是什么? 1 public static void main(String[] args) { 2 System.out.println(0xffffffff); 3 } 下面两行代 ...

  4. java 异常 中文_Java中所有的运行时异常,带中文解释

    展开全部 算术异常类:ArithmeticExecption 空指针异常类:NullPointerException 类型强制转换异常:ClassCastException 数组负下标异常:Negat ...

  5. java数组中包含元素_Java中声明数组时,包括数组的名字、数组中包含的元素的 。 (5.0分)_学小易找答案...

    [简答题]3,单冲压片机的安装程序? [判断题]continue语句只用于循环语句中,它起到终止本次循环,返回到循环开始处的作用. (5.0分) [判断题]default在switch选择结构中是必需 ...

  6. java mod %区别_Java中 % 与Math.floorMod() 区别详解

    %为取余(rem),Math.floorMod()为取模(mod) 取余取模有什么区别呢? 对于整型数a,b来说,取模运算或者取余运算的方法都是: 1.求 整数商: c = a/b; 2.计算模或者余 ...

  7. java 股票 代码_Java中利用散列表实现股票行情的查询_java

    ---- 在java中,提供了一个散列表类Hashtable,利用该类,我们可以按照特定的方式来存储数据,从而达到快速检索的目的.本文以查询股票的收盘数据为例,详细地说明java中散列表的使用方法. ...

  8. java 数据类型分为_JAVA中分为基本数据类型及引用数据类型

    byte:Java中最小的数据类型,在内存中占8位(bit),即1个字节,取值范围-128~127,默认值0 short:短整型,在内存中占16位,即2个字节,取值范围-32768~32717,默认值 ...

  9. java集合总结_Java中集合总结

    Java数组的长度是固定的,为了使程序能够方便地存储和操作数目不固定的一组数据,JDK类库提供了Java集合,这些集合类都位于java.util包中,但是与数组不同的是,集合中不能存放基本类型数据,而 ...

最新文章

  1. 全民IT时代到来了?学计算机很有前途?——淘宝2011校园招聘笔试感想
  2. gvim在windows下中文乱码的终极解决方案
  3. 【SRX】RE与PFE策略不同步,导致Commit失败-----案例分析
  4. 使用Hybris commerce的promotion rule进行促销活动
  5. servlet中实现页面跳转return “r:”和return “f:
  6. android存电话号码,如何从android中删除联系人的电话号码?
  7. 真的掏空了吗?华为开始疯狂出4G手机
  8. 1089 狼人杀-简单版 (20分)
  9. Hololens Vuforia 物体识别
  10. E-prime实验设计常用技术
  11. MTK 刷机操作说明v2.0(单路)
  12. 特征值、特征根、本征值
  13. HTML5中thead标签,【HTML5】table标签中thead、tbody、tfoot的作用
  14. 43岁,转行当了大学老师
  15. Centos网络管理(三)-网络配置相关
  16. Captcha Cracker (java)附带replace用法
  17. UltraISO 制作系统启动盘教程
  18. 盘点2019年25大人工智能趋势
  19. LoadRunner性能测试关注指标及结果分析
  20. MATLAB自动驾驶工具箱——卡尔曼运动跟踪示例解读

热门文章

  1. 嵌入式系统 实验一 GPIO口控制LED实验
  2. 贯穿阿里8年的软件测试职业生涯中 我用过的那些测试用例管理工具
  3. Pytorch安装sklearn
  4. DIGITALWORLD.LOCAL-BRAVERY靶场
  5. 「产品中心」水电预付费云平台
  6. Winform 当Panel等容器类控件 失去焦点再获得焦点后,滚动条复位的解决方式
  7. python埃及分数_C语言将真分数分解为埃及分数代码解析
  8. Python学习笔记—第二章—IPython
  9. 电商如何选择合适且稳定的服务器?
  10. selenium-java之浏览器截屏