A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

想不出来什么场景会使用这个

5 个回复

正序浏览
e咕噜 发表于 2015-7-11 22:08
在众多散列、加密、压缩、影音媒体编码、序列化格式都会用到

噢,那还好遥远,谢谢
回复 使用道具 举报
HM黑马 发表于 2015-7-11 21:59
二进制数据向右移动指定位数,左侧用0补齐。运算结果肯定是整数。正数

但是如果是负数无符号右移的话,得到的正数和原来没什么关系吧?这能干什么呢
(只考虑8位,不写前面的0)
-2补码           1111-1110,
-2>>>1        0111-1111,是127
回复 使用道具 举报
如果没有这个无符号右移,就需要用更大的空间去做有符号右移。
比如byte就需哟short,short就需要int去做,浪费空间和时间。
所谓“左移两位是乘以4(2的2次方),右移两位是除以4” 原先都是指在无符号环境下成立。只因java没有无符号的基础类型,所以你理解成有符号下才是这样。
回复 使用道具 举报
在众多散列、加密、压缩、影音媒体编码、序列化格式都会用到
回复 使用道具 举报
二进制数据向右移动指定位数,左侧用0补齐。运算结果肯定是整数。正数
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马