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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

问题:

每种基本数据类型的量在内存中的表示都有固定的位数,当移动的位数超过最大位数时,是不是意味着原来数中的所有位都被移走了哪?

解答:

非也。因为Java中规定,在进行移位运算时,先约减右侧的操作数。也就是说,当左侧操作数是int类型时,右侧以32取模;当左侧操作数是long类型时,右侧以64取模。这样的规定可以保证不会讲原数中的所有位都移走。

例子:

int x = 1;
System.out.println("x>>>32"+(x>>>32));//结果为1
System.out.println("x>>>33"+(x>>>33));//结果为0
System.out.println("x>>32"+(x>>32));//结果为1
System.out.println("x>>33"+(x>>33));//结果为0

4 个回复

倒序浏览
值得学习ing!
回复 使用道具 举报

请问黑马帝,你的这个积分是怎么回事呀?
回复 使用道具 举报
伯爵公子 发表于 2015-7-20 07:50
请问黑马帝,你的这个积分是怎么回事呀?

什么怎么回事!!技术分还是黑马币呢!!
回复 使用道具 举报
许庭洲 发表于 2015-7-20 07:57
什么怎么回事!!技术分还是黑马币呢!!

技术分和黑马币,怎么会这么高呀
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马