百科问答小站 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#在开源框架的数量和质量上有希望追上JAVA么? 
  我的一位老师说,Java 适用于大型软件而 C# 适用中小型软件。这是真的么? 
  天天P图中我的小学生证件照功能怎么实现的?算法是什么样? 
  不准备深入学习编程前提下,能最快上手制作 win 端简单软件的语言是什么? 
  如果你是一个C++面试官,你会问哪些问题? 
  程序员如何简单易懂的向老板解释架构的重要性? 
  准大一,零基础自学C语言,有什么简单易懂的自学书籍和课程推荐吗? 
  Linux 为什么不是实时操作系统? 
  如何看待当前(2022 年初)这股显卡降价潮? 
  中国计算机专业的大学生相比于美国差在哪里? 

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





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