java 位运算 , 求解释 右移(>>):对于正数,右移n位就相当于除以2的n次方;对于负数,右移n位就相当于除以2的n次方然后减1;结果是:-15/16-1 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 >> 带符号右移,高位补充符号,1111 0001 >>4=1111 1111 = -1 右移有逻辑右移和算术右移 >>是带符号的右移,这里符号是1,所以右移时左边是置1,而不是0,如果>>>就是00001111了 >>和>>>是有区别的。 public static void main(String[] args) { byte b = (byte)0xF1 ; //1. System.out.println(b >>> 4); //2. System.out.println(b >>> 28); //3.将扩大后的高24bit置为0吧 System.out.println(((b & 0xFF) >>> 4)); //4.既然知道了是8bit那就右移后直接去低4位 System.out.println(b >> 4 & 0x0F); }楼上的各位已经解释了 >>与>>>的区别了 以上代码除了1不能正常输出15外其余都可以 我也一直没想明白一旦byte溢出 Java为什么会将其扩大成int类型 关于左移,右移的操作方法: 对于byte类型的数据,右移时,要看高位,如果高位是1,右移时高位应该补1,如果高位是0,就应该补0;左移时低位均要补0。 对于符号>>和>>>这个的区别在于,不论高位的符号位是什么,高位均要补0。 十进制1的八位二进制位表示为00000001,取反加1的结果就是11111111,其表示十进制的-1。 关于左移,首先要看当前类型所占的位数,然后表示出来,然后看高位为0或者1,>>是带符号左移,如果最高位是0,那么就补零,如果最高位是1,那么就补1 今天华为-赛门铁克公司面试题 请高手指点:用JAVA开发关于运用JDBC的程序? 请问高手。。这个程序为什么没办法实现。。 如何获得鼠标在屏幕上选中区域的大小、位置? JBuilder6中如何添加包? 如何分割一字符串? java--(vj++)-->com组件 引用包 jList超菜问题!! 高手请关注!! 100分!只能给这么多!! 在线等候。 什么地方能下载JDK1.1.8??????急需!!!!!!!!!!! 使用label.SetText标签不改变,但内存中好像改变了? 请教一个Swing Socket编程技术上的程序“UncaughtException”异常的处理方法.
{
byte b = (byte)0xF1 ;
//1.
System.out.println(b >>> 4);
//2.
System.out.println(b >>> 28);
//3.将扩大后的高24bit置为0吧
System.out.println(((b & 0xFF) >>> 4));
//4.既然知道了是8bit那就右移后直接去低4位
System.out.println(b >> 4 & 0x0F);
}楼上的各位已经解释了 >>与>>>的区别了 以上代码除了1不能正常输出15外其余都可以 我也一直没想明白一旦byte溢出 Java为什么会将其扩大成int类型
对于byte类型的数据,右移时,要看高位,如果高位是1,右移时高位应该补1,如果高位是0,就应该补0;左移时低位均要补0。
对于符号>>和>>>这个的区别在于,不论高位的符号位是什么,高位均要补0。
十进制1的八位二进制位表示为00000001,取反加1的结果就是11111111,其表示十进制的-1。