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

为什么当我将其从长到短时值变为负值[重复]

陶文林
2023-03-14

我真的不明白二进制系统是怎么工作的,有人能解释一下为什么当我把它从长到短转换时,它会从正变为负吗?

System.out.println((短)32768.0);

输出:-32768

共有2个答案

梁丘璞瑜
2023-03-14

短:短数据类型是一个16位有符号二补码整数。它的最小值为-32,768,最大值为32,767(包括在内)。与字节一样,相同的准则也适用:在内存节省实际上很重要的情况下,您可以使用短来在大型数组中保存内存。

看见https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

(短)32768.0

嵇俊德
2023-03-14

首先,也就是说,double不是long。短数据类型是16位有符号二的补码整数。最小值为-32768,最大值为32767(含)。这意味着你的赋值超出了它的极限。

如果您检查以下内容;

System.out.println((short) 32768);
System.out.println((short) 32769);
System.out.println((short) 32770);
    

输出将是:

-32768
-32767
-32766

我希望你能明白

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

  • 我正在尝试学习C,特别是如何声明和初始化变量。我写了这段代码,我不知道为什么变量c给出了一个我还没有分配的值。 输出是-2,但我没有状态c=-2任何地方!

  • 我正在尝试使用一个条件,以红色显示负值,以绿色显示正值。这是我所拥有的,但我无法获得积极的值来显示。我在这里该怎么办?在我的情况下如何使用if/else条件?

  • 问题内容: 我有一个类Hra1,它定义了游戏规则(game = hra)。问题是,尽管在构造函数中创建了poleMinci数组,但我得到的是空值,例如poleMinci == null。换句话说,玩家的move方法始终返回false。 构造函数: 球员的移动方法: 问题答案: 您正在阴影变量: 在该构造函数中,由于poleMinci是在构造函数内部声明的,因此仅在构造函数内部可见。如果您在类中具有

  • 我有一个ColdFusion事件网关,有时会在以下行产生错误(其中Local.cur线程是数字1-5): 错误是: 消息:超时值为负。类型:java。lang.IllegalArgumentException 这是StackTrace: Java语言lang.IllegalArgumentException:java的超时值为负。lang.Object。在coldfusion上等待(本机方法)。运

  • 当我将本地值设置为1时,操作正常,但当设置为2时,错误消息报告如下