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




  

相关话题

  计算机考研有哪些值得推荐的院校? 
  为什么编程语言对异步编程都是很晚近才开始支持的? 
  转行做程序员是怎样的一种体验? 
  为什么jvm不用协程实现 gc 呢? 
  GPU 与 CPU 比较,为什么说 GPU 更适合深度学习? 
  网传华为研发出属于我国的编程语言「仓颉」,这是真的吗?这意味着什么? 
  工程上存在那么多不确定情况,为什么计算机不能利用它们产生真随机数,而只能根据逻辑产生伪随机数? 
  计算机领域有哪些「将错就错」被沿用至今? 
  你对你认为比较漂亮的编程语言的语法有什么理解? 
  C 语言如何判断等差数列? 

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





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