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




  

相关话题

  机械硬盘有多脆弱? 
  Java程序员,最常用的20%技术有哪些? 
  c# 的 装箱 和 拆箱 成本有多高? 
  如何评价「线程的本质就是一个正在运行的函数」? 
  你是如何学会正则表达式的? 
  一个即将步入大学对编程感兴趣的学生,3 年能将 Java 学到什么程度,应怎样合理分配这 3 年? 
  大龄门外汉如何进入软件开发行业? 
  为什么应届生去互联网大厂工资这么高? 
  突然想开一家程序员主题的餐馆,名字就叫程序员的菜,菜名就叫各种语言中的关键字,各位指点一哈,有前途没? 
  汉语编程只需要学习几十个汉字就可以编程了,外国人为什么不能汉语编程呢? 

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





© 2024-11-08 - tinynew.org. All Rights Reserved.
© 2024-11-08 - tinynew.org. 保留所有权利