当前位置: 首页 > 知识库问答 >
问题:

java:为什么带负号的byte的binary literal被认为是整数类型?

钱嘉致
2023-03-14
byte mask = 0b1111_1111;
byte mask = -1;

我没有错,但这两种表示应该是绝对相等的!

我做错了什么?提前道谢。

共有1个答案

司徒瀚
2023-03-14

您可以安全地将-2^7到2^7-1(-128到127)的值分配给字节,因为它是8位。

其中as0b1111_1111=255

所以需要在那里打石膏

 byte mask = (byte) 0b1111_1111;
 类似资料:
  • 问题内容: 我问了一个一般性的Spring问题:自动播发Spring Bean,并让多个人回答说应尽可能避免调用Spring 。这是为什么? 我还应该如何访问配置了Spring创建的Bean? 我在非Web应用程序中使用Spring,并计划按照LiorH的描述访问共享对象。 修正案 我接受下面的答案,但这是Martin Fowler的另一种选择,他讨论了依赖注入与使用(本质上与调用相同)的优点。

  • 问题内容: 我是一位Java程序员,对公司领域来说是新手。最近,我已经使用Groovy和Java 开发了一个应用程序。我编写的所有代码都使用了大量的静态变量。高级技术人员要求我减少使用的静电数量。我已经在谷歌上搜索了相同的内容,并且发现许多程序员都反对使用静态变量。 我发现静态变量更易于使用。而且我认为它们也是有效的(如果我错了,请纠正我),因为如果我必须对一个类中的一个函数进行10,000次调用

  • 问题内容: 为什么每个人都告诉我编写这样的代码是一种不好的做法? 我省略花括号的最大论据是,有时花括号可能是花括号的两倍。例如,以下代码为C#中的标签绘制发光效果。 您还可以获得链接usings在一起的额外好处,而不必缩进一百万次。 花括号的最常见参数涉及维护编程,以及在原始if语句及其预期结果之间插入代码会引起的问题: 问题: 想要使用该语言提供的更紧凑的语法是错误的吗?设计这些语言的人很聪明,

  • 我有一个问题,关于什么是正确的做法,使用SwingU实用程序的调用稍后方法。 所以首先,我想确认我理解正确。 据我所知,对GUI的更改必须在EDT上完成,因为Swing组件不是线程安全的。invokeLater方法将Runnable作为参数,该Runnable中包含的任何内容都将在EDT上运行。因此,对Swing组件的任何调用都被放入一种队列中,在EDT上一次执行一个。 有了这些,我的问题是:使用

  • 问题内容: 我有这个代码: 为什么几次打印后会变成负片?如果超出范围,是否不应该发生错误? 问题答案: 如果将数字增加到最大值之后,Java不会抛出错误。如果您希望具有此行为,则可以使用Java 8中的方法。如果传递,则该方法将引发。 Java不会引发异常并且您收到负数的原因与数字的存储方式有关。对于长原语,第一个字节用于指示数字的符号(0->正号,1->负号),其余字节用于数字值。这意味着最大的

  • 问题内容: 任何数据类型的上限(不包括)总是比下限的绝对值小1。 例如,an的上限为2,147,483,647,ABS(下限)= 2,147,483,648。 是否有理由总是总是比负整数多一个负整数? 编辑:更改,因为问题与数据库不直接相关 问题答案: 您提供的类型是有符号整数。让我们来看一个字节(8位)的示例。使用1字节,您可以使用组合来存储256个可能的数字。 现在,您要具有相同数量的正数和负