黑马程序员技术交流社区

标题: 问一个度娘也无法解决的问题…… [打印本页]

作者: wengjialiang    时间: 2015-7-2 19:57
标题: 问一个度娘也无法解决的问题……
关于无符号右移的位运算>>>,我们知道这个运算符在进行位运算时,最高位无论是1还是0,那么位移后最高位都会补0,对于负数则运算后则变成了正数,比如
-50>>>2=1073741811,那么原理是如此…………那么问题来了,无符号右移>>>到底有什么实际的应用??或者什么情况下用>>>这个符号??


作者: 等你的季节-夏天    时间: 2015-7-2 20:17
我只知道从那之后,我后面学的东西没用到这些.
作者: firwood    时间: 2015-7-2 20:18
当数字的二进制最高位不被当成符号位,就分出无符号和根据最高位填充空余位的区别了。
作者: CLTDEZHUCE    时间: 2015-7-2 20:34
无符号右移在数据变换时非常重要。
比如对byte b;做无符号右移,在众多散列、加密、压缩、影音媒体编码、序列化格式都会用到。
如果没有这个无符号右移,就需要用更大的空间去做有符号右移。
比如byte就需哟short,short就需要int去做,浪费空间和时间。
所谓“左移两位是乘以4(2的2次方),右移两位是除以4” 原先都是指在无符号环境下成立。只因java没有无符号的基础类型,所以你理解成有符号下才是这样。
总之,无符号右移的应用场合大大多于有符号右移。。
作者: zhao_HHH    时间: 2015-7-2 21:16
当一个数在除以2的整数次幂的时候,为了避免余数的影响,我们一般都会用>>>,其实和乘以2的整数次幂是正好相反的(<<)
作者: zhand    时间: 2015-7-2 21:49
暂时还接触不到呢
作者: 慕容旺财    时间: 2015-7-4 22:47
在进制转换的优化里面可以用到 请参阅毕老师day04的视频 进制转换优化
作者: wengjialiang    时间: 2015-7-4 22:53
慕容旺财 发表于 2015-7-4 22:47
在进制转换的优化里面可以用到 请参阅毕老师day04的视频 进制转换优化

谢谢提醒
作者: zhangxin    时间: 2015-7-5 08:21
表示不会,进来学习下,
作者: samove    时间: 2015-7-5 08:30
进制运算,从各种进制间互相转换,遇到负数时就要使用无符号右移了。
作者: 帅帅loyal    时间: 2015-7-5 08:58
在基础视频里边进制转换会用到,在转换负数的时候,如果前边一直补1的话,那就算的停不下来了,
作者: Miss.H    时间: 2015-7-5 09:08
不明觉厉.......................
作者: mls123456    时间: 2015-7-7 23:37
这个确实不太懂




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