在 Java 中创建无符号整数

Rashmi Patidar 2023年10月12日
在 Java 中创建无符号整数

有符号整数作为正负值范围存储在数据库中,从 -1-128。与此相反,无符号整数仅包含从 0255 的大量正范围值,没有负值。这意味着无符号整数永远不能存储负值。

在 Java 中,数据类型集不明确包含任何无符号的 int。但是,根据用例,可以将其他数据类型视为无符号整数。Java 提供了一个 long 数据类型来存储更大的无符号值。

long 数据类型是 64 位大小,在内部处理二进制补码。在 Java 8 和更高版本中,long 数据类型可以存储范围从 02^64-1 的值。与简单的 int 数据类型相比,它提供了更多的数据范围。

下面是定义两种数据类型的大小和区别的代码块。

public class Main {
  public static void main(String[] args) {
    System.out.println("Size of int: " + Integer.SIZE + "bits");
    System.out.println("Size of int: " + Long.SIZE + "bits");
    int signedInt = -2345678;
    long unsignedValue = signedInt & 0xffffffffL;
    System.out.println(signedInt);
    System.out.println(unsignedValue);
  }
}

在上面的代码块中,前两个语句打印 IntegerLong 类的大小。整数是一种原始数据类型,用于保存 int 值。

int 的大小打印为 32 个字节,而 Long 包装类的大小打印为 64 个字节。这些类定义了表示包装类大小的静态和最终变量。

在打印语句旁边,定义了两个局部变量或类变量。变量是 intlong 数据类型。在整数中实例化的值是负数,因为它同时包含负值和正值。

long 变量中,有符号整数使用按位 & 运算符进行运算。它适用于转换为二进制格式的数字的二进制补码。所以在内部,它首先将负值转换为二进制形式。在两个二进制值之间,它对两个值执行逻辑&操作。运算符最终会将负值转换为正数。

上面两行程序的输出如下所示。

Size of int: 32bits
Size of int: 64bits
-2345678
4292621618
作者: Rashmi Patidar
Rashmi Patidar avatar Rashmi Patidar avatar

Rashmi is a professional Software Developer with hands on over varied tech stack. She has been working on Java, Springboot, Microservices, Typescript, MySQL, Graphql and more. She loves to spread knowledge via her writings. She is keen taking up new things and adopt in her career.

LinkedIn

相关文章 - Java Integer