黑马程序员技术交流社区
标题:
>>>谁能给我说说这是什么吗
[打印本页]
作者:
忧伤
时间:
2013-6-2 10:22
标题:
>>>谁能给我说说这是什么吗
本帖最后由 忧伤 于 2013-6-3 16:44 编辑
谁能给我说说>>>是什么吗 详细点还有用法
作者:
孙茜茜
时间:
2013-6-2 10:41
把数据用二进制的方式右移,前方补0
作者:
风爽
时间:
2013-6-2 10:51
二进制无符号右移,前面补0
作者:
杨青
时间:
2013-6-2 10:55
在计算机科学中,移位操作一般可以用来作乘以或除以2的n次方的操作。
比如:
50的二进制码是00110010,那么50>>1就变成了00011001,正好是25。
24的二进制码是00011000,那么24<<2就变成了01100000,正好是96。
但负数就不能用<<,>>了。
比如:
-50的二进制码是11001110,-50>>1,就变成了01100111,这是103的二进制码。
-24的二进制码是11101000,-24<<2,就变成了10100000,这是160的二进制码。
所以,计算机还提供了一种算术移位,即移位时不改变符号位。
比如-50>>>1,变成11100111,这正好是-25的二进制码。
具体到这个题目,就是将产生的随机数除以2,再用商除以101,取余数。
作者:
youngster
时间:
2013-6-2 10:55
左移位:<<,有符号的移位操作
左移操作时将运算数的二进制码整体左移指定位数,左移之后的空位用0补充
右移位:>>,有符号的移位操作
右移操作是将运算数的二进制码整体右移指定位数,右移之后的空位用符号位补充,如果是正数用0补充,负数用1补充
楼主提问的是无符号移动:
无符号的移位只有右移,没有左移使用“>>>”进行移位,都补充0
例如:
public static void main(String[] args)
{
System.out.println(6>>>2);
System.out.println(-6>>>2);
}
结果:
1
1073741822
分析:
? ? 00000000 00000000 00000000 00000110 +6在计算机中表示方法
0000000000 00000000 00000000 00000110 右移两位,正数补0,结果为1
作者:
HM张博文
时间:
2013-6-2 10:58
无符号右移,左边直接补0
如果是>>的话,左边是按最高位补0或1
作者:
赵乐
时间:
2013-6-2 10:59
哥,这些基础问题,你仔细听毕老师讲课
>>>是无符号右移 还有个>>是带符号右移
>>就是将数值转为2进制的时候 如果是正数在前面补0 如果是负数在前面补1
比如 6>>2 将数字6右移2位
6的2进制表现形式:0000 0000 0000 0000 0000 0000 0000 0110右移2位就是把末尾处10移除, 然后因为是带符号右移所以在首位补0
结果就是: 0000 0000 0000 0000 0000 0000 0000 0001 十进制就是1
如果是-6 1111 1111 1111 1111 1111 1111 1111 1010 如果是>>2 首位就需要补1 而>>>就是无符号右移 ,首位始终补0
作者:
Sword
时间:
2013-6-2 12:05
楼主,提问这样的问题是不能给分的,多看看视频,里面讲的很清楚了
作者:
精彩生活向钱看
时间:
2013-6-2 13:02
>>>是无符号右移
>>就是将数值转为2进制的时候 如果是正数在前面补0 如果是负数在前面补1
举个例子你就明白了 6>>2 将数字6右移2位
6的2进制表现形式:0000 0000 0000 0000 0000 0000 0000 0110右移2位, 然后因为是带符号右移所以在首位补0
结果就是: 0000 0000 0000 0000 0000 0000 0000 0001 十进制就是1
如果是-6 1111 1111 1111 1111 1111 1111 1111 1010 如果是>>2 首位就需要补1 而>>>就是无符号右移 ,首位始终补0
评分
作者:
孔雀东南飞
时间:
2013-6-2 13:34
楼主:这是位运算符
<<左移,3<<2 = 12 (0011——1100),越往左移数越大
规律:3<<n位,也就是3*2的n次幂
>>右移,6>>2 = 1 (0110——0001),越往右移数越小
规律:6>>n位,也就是6除以2的n次幂,取整数舍弃小数
>>>无符号右移,无论正负,右移后空出的位都用0来补
作者:
Sword
时间:
2013-6-2 14:44
如果问题已解决,请重新编辑帖子改为“已解决”,否则继续追问,谢谢合作!
关于把"未解决"的问题修改成"已解决"的说明 :
http://bbs.itheima.com/thread-49464-1-1.html
作者:
Sword
时间:
2013-6-2 14:48
如果问题已解决,请重新编辑帖子改为“已解决”,否则继续追问,谢谢合作!
关于把"未解决"的问题修改成"已解决"的说明 :
http://bbs.itheima.com/thread-49464-1-1.html
作者:
peerless2012
时间:
2013-6-2 23:04
无符号右移,不论原来的数是正数还是负数,都用0补齐。
作者:
Super_Class
时间:
2013-6-3 08:01
无符号右移运算符,
用于二进制数的移位,
数据进行右移时,高位出现的空位,无论原高位时什么,空位都用0补
作者:
曹世明
时间:
2013-6-3 09:48
无符号右移(无论最高位是什么,都由0来补齐)
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2