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




  

相关话题

  什么代码最适合放在电影里伪装黑客代码? 
  把windows平台下mfc框架的代码移植到linux对编程小白来说难度很大吗?应该学习什么内容呢? 
  为什么有些程序员会鄙视MATLAB? 
  能否通过逻辑编程消灭程序BUG? 
  Java遍历HashSet为什么输出是有序的? 
  考上985的你,如果有重来一次的机会,你会选择985的天坑还是211的计算机(假设分数只能这么选)? 
  为什么程序员会有代码能跑就不要动的观点? 
  为什么 Win 98 时代风格的安装程序很多都自带一个最大化的蓝/绿色背景?有什么用? 
  现在软件行业已经很成熟,为什么程序员还在没日没夜敲代码搞系统更新? 
  config、option、setting这三者在程序世界里是什么区别? 

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





© 2025-03-24 - tinynew.org. All Rights Reserved.
© 2025-03-24 - tinynew.org. 保留所有权利