黑马程序员技术交流社区

标题: 无符号右移>>>有什么实际用处吗? [打印本页]

作者: 任文龙    时间: 2015-7-11 20:59
标题: 无符号右移>>>有什么实际用处吗?
想不出来什么场景会使用这个

作者: HM黑马    时间: 2015-7-11 21:59
二进制数据向右移动指定位数,左侧用0补齐。运算结果肯定是整数。正数
作者: e咕噜    时间: 2015-7-11 22:08
在众多散列、加密、压缩、影音媒体编码、序列化格式都会用到
作者: Miss.H    时间: 2015-7-11 22:17
如果没有这个无符号右移,就需要用更大的空间去做有符号右移。
比如byte就需哟short,short就需要int去做,浪费空间和时间。
所谓“左移两位是乘以4(2的2次方),右移两位是除以4” 原先都是指在无符号环境下成立。只因java没有无符号的基础类型,所以你理解成有符号下才是这样。
作者: 任文龙    时间: 2015-7-12 09:25
HM黑马 发表于 2015-7-11 21:59
二进制数据向右移动指定位数,左侧用0补齐。运算结果肯定是整数。正数

但是如果是负数无符号右移的话,得到的正数和原来没什么关系吧?这能干什么呢
(只考虑8位,不写前面的0)
-2补码           1111-1110,
-2>>>1        0111-1111,是127
作者: 任文龙    时间: 2015-7-12 09:27
e咕噜 发表于 2015-7-11 22:08
在众多散列、加密、压缩、影音媒体编码、序列化格式都会用到

噢,那还好遥远,谢谢




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