黑马程序员技术交流社区

标题: 右移>>与>>>的区别? [打印本页]

作者: 时光♪微凉    时间: 2014-5-7 13:26
标题: 右移>>与>>>的区别?
本帖最后由 时光♪微凉 于 2014-5-10 10:10 编辑

>>和>>>搞得有点混淆了,求大神给我详细的讲解
作者: 曹冬明    时间: 2014-5-7 13:56
>>是有符号右移,如果是负数就是补1,整数就补零,>>>是无符号右移,不管正负数都补0

作者: 911趣购    时间: 2014-5-7 14:08
楼上的正解。。。。。
作者: 时光♪微凉    时间: 2014-5-7 14:16
曹冬明 发表于 2014-5-7 13:56
>>是有符号右移,如果是负数就是补1,整数就补零,>>>是无符号右移,不管正负数都补0
...

那一般是怎样使用>>和>>>呢?使用在哪方面?
作者: 倪大大    时间: 2014-5-7 14:23
上面已经讲的很清楚了,这东西不用记什么 只要知道就行,顶多就是哪家公司面试时候抽风问你这个,平时用不到的,我从来没碰到过这问题使用
作者: z1342802487    时间: 2014-5-7 14:32
>>右移,不改变原数的符号,a>>2相当于a/2。>>>0填充的右移不能保证右移后符号和原来的相同。
作者: 时光♪微凉    时间: 2014-5-7 14:40
倪大大 发表于 2014-5-7 14:23
上面已经讲的很清楚了,这东西不用记什么 只要知道就行,顶多就是哪家公司面试时候抽风问你这个,平时用不到的 ...

好像这个是可以用来运算的,貌似能提高速率
作者: 时光♪微凉    时间: 2014-5-7 14:41
z1342802487 发表于 2014-5-7 14:32
>>右移,不改变原数的符号,a>>2相当于a/2。>>>0填充的右移不能保证右移后符号和原来的相同。 ...

我怎么越看越晕乎呢?
作者: 倪大大    时间: 2014-5-7 14:45
时光♪微凉 发表于 2014-5-7 14:40
好像这个是可以用来运算的,貌似能提高速率

你应该也是和我一样的正在申请的入学资格得苦逼崽吧,这东西对我们现在用处真心不大,你知道他是提高效率的就好.
作者: 时光♪微凉    时间: 2014-5-7 14:49
倪大大 发表于 2014-5-7 14:45
你应该也是和我一样的正在申请的入学资格得苦逼崽吧,这东西对我们现在用处真心不大,你知道他是提高效率的 ...

:L现在是不懂,所以要求懂,懂不?
作者: 沙漠侧行者    时间: 2014-5-7 15:49
二楼正解!!!
作者: masai158    时间: 2014-5-7 16:14
视频已经讲解很清楚,视频能解决你99%的问题。苦逼楼主还是去看视频吧。 与其花时间,还不如看视频
作者: you4580    时间: 2014-5-7 16:36
>>是有符号右移
>>>是无符号右移
视频里讲解的很清楚的

作者: Conning    时间: 2014-5-7 16:47
>>的确可以用于运算不过局限性太大 比如3*8就可以用到 因为可以看做是3*2的三次幂 这样也就等于左移三位
空出来的位数补0
作者: gentleman    时间: 2014-5-7 17:59
>>是有符号右移(高位是1则补1,高位是0则补0)。。。。>>>是无符号右移(高位补0)。。。
位移运算效率高,右移n位相当于这个数除以2的n次方。

作者: 志ぁ才☆博ぁ成    时间: 2014-5-7 20:01
我刚开始懂了,现在又有点模糊了。
作者: 周大侠    时间: 2014-5-7 20:22
>>是有符号右移,如果是负数就是补1,整数就补零,>>>是无符号右移,不管正负数都补0
这个就是刚开始学进制的时候用一下,后面一般写代码不用,毕老师视频第三天有解释,
作者: 姜蕾蕾    时间: 2014-5-7 20:57
>>(右移)右移时,左边的空出的位负的补一,正的补零,>>>(无符号右移)是无论正负都补零,应该是这样的
作者: 646245771    时间: 2014-5-7 23:35
这个仔细看视频的话,应该很好理解吧
作者: 奇迹    时间: 2014-5-9 02:48
100000011111111
<<表示向左边移动一位
00000011111111
>>表示向右边移动一位
0100000011111110




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2