百科问答小站 logo
百科问答小站 font logo



Java 位与0xff 和位或0x00 得到的结果为什么不同? 第1页

  

user avatar   recruits 网友的相关建议: 
      

(byte)-1 参与运算时会转换为int,其二进制形式为-1的补码,即32个1。由于32位中的高16位并不会影响结果,所以我们仅仅对低16位来分析。

(byte)-1 & 0xff => 1111111111111111 & 0000000011111111 => 0000000011111111 => 255

(byte)-1 | 0x00 => 1111111111111111 | 0000000000000000 => 1111111111111111 => -1

由于java默认整数类型为int,所以结果会出现超过byte范围的数。




  

相关话题

  现代软件开发中,详细设计这一步要如何来做? 
  服务器之间文件自动拷贝用什么技术好? 
  DeepMind 再登 Nature,用 AI 破译古希腊文字,该成果会对人类历史研究带来什么影响? 
  C/C++ 标准库为什么不支持直接删除一个文件中的部分内容? 
  就节省编译时间来说,Precompiled Header和Pimpl范式哪个更好? 
  穷人家的女孩应该转去计算机专业吗? 
  以王垠的水平,他可以开发出像 nginx 和 redis 这样的软件吗? 
  如何用最通俗的语言解释「格式化」? 
  为什么微软.NET,C#在美国,英国等国外都非常流行,而在国内却逐渐没落? 
  电脑存在“熟悉”某项任务后运行变快的情况吗? 

前一个讨论
为啥苏联当年也是联邦制却解体,而美国也联邦制却不解体。这两个联邦制有什么关键区别?
下一个讨论
高中生花钱上补习班是一种失败人士送钱的行为吗?





© 2025-05-06 - tinynew.org. All Rights Reserved.
© 2025-05-06 - tinynew.org. 保留所有权利