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




  

相关话题

  如何看待 985 贴吧集体对化学的鄙视以及对 CS 的推崇? 
  前端开发的难点到底在什么地方? 
  为什么在计算机改变了人类命运的今天,冯·诺依曼的知名度始终低于爱因斯坦? 
  现在流行的少儿编程是不是收智商税? 
  Java中,有一个for循环调用网络api很耗时,请问如何减少耗时? 
  为什么全网都在推崇计算机、写代码,难道大学除了计算机专业其他专业真的一无是处吗? 
  如果软件正在占领全世界,为什么程序员得不到尊重? 
  如果编程语言有性别?Java、C++、C、C#是男是女?是GAY还是LES? 
  C#相对路径 连接Access数据库怎么写?? 
  编程那么难,为什么不弄一个大众一学就会的计算机语言呢? 

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





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