一个简单的问题-(j & 0xff) << 24 | i & 0xffffff 中的“0xff”和“0xffffff”起什么作用? (j & 0xff) << 24 | i & 0xffffff 中的“0xff”和“0xffffff”起什么作用?不加结果也一样啊! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 i和j是什么类型啊?至少后面那个“0xffffff”不能说不加也一样吧。 高位补0如果是int的话应该就是0x000000ff和 0x00ffffff “& 0xffffff”的结果是只保留最后24个bit呀,跟没有怎么会一样呢? 哦,明白了,我忽略了int是32位。 至于前面的“(j & 0xff) << 24”,如果j是int的话,的确跟j << 24的结果没什么区别。我想作者这么写要么是为了可读性(只取最后8bit的目的更加明显),要么是为了更放心吧。偶有时也会写类似的代码,比如忘记了“<<”是左移还是循环左移,又懒得查书,干粹就写“(j & 0xff) << 24”,怎么着都对,呵呵。当然,或许这样可扩展性也好,比如万一将来j需要改成long型了,结果还是对的。总之不是什么大问题,就别再钻牛角尖了。 物业管理系统的调试问题(高分求助) java编译问题 小问题,求高手,有分 类似与QQ的聊天记录窗口怎么做的? poi在weblogic和jbuilderx的配置? 菜鸟提问:在Jcreator里面怎样使用jar文件? 现在还有没有大学生能找个兼职的公司阿 请问 ibm 的机器人Robocode里的heading和bearing分别是什么意思呀?英文解释我没看懂。 怎样用Arrays.sort()函数排序一个类对象数组。 很基础的Java语言编写 大虾指点 高智商进来看看
至少后面那个“0xffffff”不能说不加也一样吧。
如果是int的话应该就是0x000000ff和 0x00ffffff
我想作者这么写要么是为了可读性(只取最后8bit的目的更加明显),要么是为了更放心吧。
偶有时也会写类似的代码,比如忘记了“<<”是左移还是循环左移,又懒得查书,干粹就写“(j & 0xff) << 24”,怎么着都对,呵呵。
当然,或许这样可扩展性也好,比如万一将来j需要改成long型了,结果还是对的。总之不是什么大问题,就别再钻牛角尖了。