java位移运算

将一个整数110的左端4到7位变位0

设110为int类型,那么其2进制序列为:00000000000000000000000001101110根据你的需求,将左端4到7位变位0,那么最终得到的指令为:00000000000000000000000001100000(也就是将1110变为0)与运算: &,其规则如下:1&1 --> 1
1&0 --> 0
0&1 --> 0
0&0 --> 0那么你现在这种情况,你只需&上这个数就可以达到目的了:00000000000000000000000001110000也就是10进制的112,那么:int i = 110;
i = i & 112;
System.out.println(i);最后i的结果为96,其2进制为:00000000000000000000000001100000
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-26
位移属于位(可以认为是对2进制)操作,其中的操作和逻辑操作差不多,只是对象不同而已.位操作首先必须把数值转换成2进制,然后进行运算.int a = 10;a = a << 2;//a等于a左移2位那么,因为 a = 10(10) = 1010(2)所以 a<<2(1010(2)向左移动2位,即在后面补2位) = 101000(2) = 40(10) 右移是一样的int a = 11;a = a >> 1;因为 a = 1011(2) 所以 a = 101(最后一位被移走了) = 5
第2个回答  2013-07-26
java中整数int的位数是32位,如果是要这个数的32位从左算起的第4位到第7位为0,则只需要将该数按位与上0xE1FFFFFF,即110&0xE1FFFFFF。不过这样与了之后,110的值不变,因为110的二进制表示是32位表示的,所以从左算起的第4个到第七个位都是0。 如果是从右开始的第4位到第7位就是按位与上0xFFFFFF87,即110&0xFFFFFF87.

java中的<<是什么意思?
位移动运算符:<<表示左移, 左移一位表示原来的值乘2.例如:3 <<2(3为int型)1)把3转换为二进制数字0000 0000 0000 0000 0000 0000 0000 0011,2)把该数字高位(左侧)的两个零移出,其他的数字都朝左平移2位,3)在低位(右侧)的两个空位补零。则得到的最终结果是0000 0000 0000 0000 000...

java位移运算符
今天给大家分享的技术知识是:Java中的位移运算符!1) “有符号”左移位运算符(<<)能将运算符左边的运算对象向左移动运算符右侧指定的位数(在低位补0)。左移移位相当于乘以2,例如 3 << 2 \/\/12 则是将数字3左移2位 3*2*2 = 3*(2的2次方)分析:首先把3转换为二进制数字0000 0000 0000 ...

Java中,–128>>4等于多少,怎么算的
在JAVA中,>>是移位运算符,4表示向右位移4位,–128转为二进制是-10000000,向右移动4位就是-1000(二进制),转回即为-8。

Java中的位移运算中的>>(逻辑右移)和>>>(算术右移)的区别?
逻辑右移是将各位依次右移指定位数,然后在左侧补0,算术右移是将各位依次右移指定位数,然后在左侧用原符号位补齐

java中的>>>和>>>=是什么意思
“>>>”运算符所作的是无符号的位移处理,它不会将所处理的值的最高位视为正负符号,所以作位移处理时,会直接在空出的高位填入0。当我们要作位移的原始值并非代表数值时(例如:表示颜色图素的值,最高位并非正负号),可能就会需要使用此种无符号的位移。比如:-10>>>2=1073741821 -10=1111 ...

java里4<<2为16怎么理解?麻烦一下!解释解释关于左移的!!
这是位移算法 4的二进制是:0000 0100 <<表示往左移两位:00 010000 只要把4转换成二进制,往左移两位,再转换成10进制得出结果既是:16

java >>=怎么算的
java中>>代表的是向右移位运算,而>>=代表的是向右移位运算时将运算的结果同时赋值给原值,举个例子说明一下:int index = 7;int index2 = index>>1,则表示将7转化为二进制数后向右移动一位,而原值不变,故index = 7 ,index2 = 3;int index3 = index>>=1,则表示将7转化为二进制...

java 中 9>>>3是什么意思
>>>这个是位移运算符吧,如果你懂得>>是什么意思,那那么这个就容易理解了 其实位移会为有符号位移, 和无符号位移;<<表式,向左移 >>表示向右移 >>>表示无符号右移,就是在位移过程中不考虑符号因素,都做为正数处理。符号位为始终为0 ...

java中 long a1 = a >>> 1 表示什么意思,主要是>>>的解释或相关资料,多 ...
位移运算符只对int值进行操作,如果不是int,编译器会报错。在Java中,一个int的长度始终是32bit,也就是4个字节。比如t>>>n的含义就是把整数t右移n位,高位补上零。所以如果t是个负数,最高位是1,那么经过无符号右移之后,就成了一个正数。比如 -1>>>31=1。

java里位移与取模怎样写一个等式相同的例子
比如有整型a:a>>2 等价于 a \/ 4 a>>3 等价于 a \/ 8 a>>34等价于 a >> (34%32) 即a>>2 等价于 a \/ 4。而10并不是2的幂。再者,取模就是取余数,跟整除是两个东西,没有等价的位移运算,而是等价的按位与运算,前提同样的是除数必须是2的幂。那么 求a除以2的n次方的余数 ...

相似回答