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

如何在Java8和Java9中使用无符号整数?

扈高逸
2023-03-14

在Oracle“原始数据类型”页面中,它提到Java8增加了对无符号int和long的支持:

public class Foo {
    static long values = 18446744073709551615L;
    
    public static void main(String[] args){
        System.out.println(values);
    }  
}

那么,有没有办法声明一个无符号的int或long呢?

共有1个答案

慎建本
2023-03-14

根据您发布的文档和这篇博文-在声明无符号int/long和有符号int/long的原语时没有区别。“新的支持”是在Integer和Long类中添加了静态方法,例如Integer.divideunsigned。如果您不使用这些方法,则高于2^63-1的“无符号”长就只是一个具有负值的普通旧长。

快速浏览一下,似乎没有方法声明+/-2^31-1或+/-2^63-1以外的范围内的整数常量。您必须手动计算与超出范围的正值相对应的负值。

 类似资料:
  • 我正在练习Cay S.Horstmann的《Java SE 8 for the Really Impatient》一书中的练习。其中一个基于类中的改进的练习要求: 编写一个程序,使用< code>int值和无符号运算,对0和232 - 1之间的数进行加、减、除和比较。说明为什么需要< code>divideUnsigned和< code>remainderUnsigned。 问题是,如果您添加2个

  • 问题内容: 我正在使用Flask-SQLAlchemy(MySQL)将门户迁移到Flask。以下是我用于为现有门户创建数据库的代码: 这是我尝试在SQLAlchemy中使用它的方式: 我的问题是,如何使SQLAlchemy模型指定为无符号整数? 问题答案: 在这种情况下(如MySQL这样的数据库其数据类型本身不是标准数据类型或具有非标准选项),你可以通过获取特定于方言的类型来访问这些类型/选项。对

  • 问题内容: 假设我有这个号码。我如何将其称为无符号变量?像C一样 问题答案: 假设 : 您会想到2的补码表示法;和, 通过您 的意思是 32位无符号整数, 那么您只需将其添加为负值即可。 例如,将此应用于-1: 假设1表示您希望将-1视为一个1位的实字符串,而假设2表示您希望其中的32个。 但是,除了你,没人可以说你隐藏的假设是什么。例如,如果考虑到1的补码表示形式,则需要应用前缀运算符。Pyth

  • JLS for Java 8引入了三个新的分隔符: 省略号()用作方法或构造函数的最后形式参数。但是Java7的JLS已经将这种形式参数描述为可变性参数。它没有被提到作为分隔符。 分隔符用于形成方法引用表达式。 的意思是“区分注释类型声明和普通接口声明”,因此是注释类型声明的一部分。注释已经是Java7的JLS的一部分。我看不出“at标志”还有其他用法。 搜索有关Java8分隔符的问题和答案时,我

  • 问题内容: 我想在textView中有一些简单的文本。 像…(Android&Java) 表示我确实需要输入“和”符号 如果我在TextView 中提供它,则会在xml中显示错误。 任何人都可以建议我如何忽略特殊情况下的字符&,“等并将其包含在我们的文本中。 问题答案: 尝试通过代码设置文本 使用HTML编码/解码文本

  • 我正在学习基本数据类型的Java教程。在早期,它指出 在Java SE 8及更高版本中,可以使用int数据类型表示无符号32位整数,其最小值为0,最大值为2^32-1。使用integer类将int数据类型用作无符号整数。 我从这句话中理解的是,只要我使用整数包装器对象而不是int原始数据类型,我现在可以将最多2^32-1存储为int。但是当我尝试这个时,我的编译器抱怨我使用的值太大,2^31。我已