java 向量移动_java位移运算符“<<”,“>>”,“>>>”详解

1.java左移运算符“<

-5的二进制原码为:100000000 00000000 00000000 00000101 很容易得出补码为:111111111 11111111 11111111 11111011 -5<<2的结果为:111111111 11111111 11111111 11101100 -5<<2的原码为:100000000 00000000 00000000 00010100 -5<<2转化十进制为:-20 -5<<29的结果为:011000000 00000000 00000000 00000000 -5<<29十进制结果为:1,610,612,736

由以上可以的出结论,负数左移可以变成正数,正数左移可以变成负数,在数字没有溢出的前提下,n<

2.java带符号右移运算符">>": n>>m就是在高位补m个符号位,低位舍弃 5的二进制为:00000000 00000000 00000000 00000101 5>>1的结果为:00000000 00000000 00000000 00000010 5>>1十进制为:2

-5的二进制原码为:100000000 00000000 00000000 00000101 很容易得出补码为:111111111 11111111 11111111 11111011 -5>>1的结果为:111111111 11111111 11111111 11111101 -5>>1的原码为:100000000 00000000 00000000 00000011 -5>>1十进制为:-3

n>>m的数学意义为n/2^m向下取整

3.java无符号右移运算符">>>": n>>>m就是在高位补m个0,低位舍弃,对于正数来说它等同于n>>m,对于负数来说可以通过无符号右移变成正数

总结:对于int类型来说,单移动位数超过31位,则实际移动位数为:m%32,列如5<<35 = 5<<3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值