百科问答小站 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范围的数。




  

相关话题

  编程新手如何提高编程能力? 
  如何激怒一位 C++ 爱好者? 
  电脑发展史上有哪些伟大的思想和技术? 
  作为一个有理想的程序员,必读的书都有哪些? 
  为什么三大游戏机平台都被 AMD 占领了?这是否说明现如今 AMD 显卡略胜 NVIDIA 一筹? 
  既然Java反射可以访问和修改私有成员变量,那封装成private还有意义么? 
  为什么高端ThinkPad的屏幕液晶面板还是TN? 
  写代码过程中最忌讳的是什么?总感觉最近太过于急于求成? 
  蒙特卡罗算法是什么? 
  低耦合或代码重复在该情况中该如何抉择? 

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





© 2025-04-15 - tinynew.org. All Rights Reserved.
© 2025-04-15 - tinynew.org. 保留所有权利