byte i = -1;
System.out.println(Integer.toBinaryString(i));
i >>>= 10;
System.out.println(Integer.toBinaryString(i));输出结果:
11111111111111111111111111111111
11111111111111111111111111111111这两个为什么输出的结果是一样的?
System.out.println(Integer.toBinaryString(i));
i >>>= 10;
System.out.println(Integer.toBinaryString(i));输出结果:
11111111111111111111111111111111
11111111111111111111111111111111这两个为什么输出的结果是一样的?
解决方案 »
- 弱问,为什么Java类只能用Public和默认访问修饰符,而不能用其他两个。
- 如何读取文件夹中的文件夹名
- 使用内部类出现的问题,实现简单的触发动画
- 通过URLClassLoader载入的class,是否在整个ClassPath中可见?
- 窗口到一定大小后,出现"AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space。怎么回事??
- java socket
- 讨论一个问题:怎样避免一个类在不断地变化中对它相关联的类产生不利影响
- 线程监控的问题
- 有没有swing的编辑控件支持高亮显示功能
- 请问如何实现java的application程序的几个小窗口的粘附?就象winamp那种
- 关于Servlet所遇到的问题
- java对象的存储问题
>>高位补0
《Thinking in Java》:
如果对byte或short值进行这样的位移运算,得到的可能不是正确的结果。它们会先被转换成int型,再进行右移操作,然后被截断,赋值给原来的类型,在这种情况下可能得到-1的结果。