gpt4 book ai didi

java - 整数的最大值

转载 作者:bug小助手 更新时间:2023-10-28 10:39:44 25 4
gpt4 key购买 nike

在 C 中,整数(对于 32 位机器)为 32 位,范围从 -32,768 到 +32,767。在 Java 中,整数(long)也是 32 位,但范围从 -2,147,483,648 到 +2,147,483,647。

我不明白 Java 中的范围有何不同,即使位数相同。有人可以解释一下吗?

最佳答案

C中,语言本身并不决定某些数据类型的表示。它可能因机器而异,在嵌入式系统上,int 可以是 16 位宽,但通常是 32 位。

唯一的要求是 short int <= int <= long int 大小。此外,建议 int 应代表处理器的 native 容量

所有类型都已签名。 unsigned 修饰符允许您使用最高位作为值的一部分(否则它保留给符号位)。

以下是可能数据类型的可能值的简短表格:

          width                     minimum                         maximum
signed 8 bit -128 +127
signed 16 bit -32 768 +32 767
signed 32 bit -2 147 483 648 +2 147 483 647
signed 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807
unsigned 8 bit 0 +255
unsigned 16 bit 0 +65 535
unsigned 32 bit 0 +4 294 967 295
unsigned 64 bit 0 +18 446 744 073 709 551 615

Java 中, Java Language Specification确定数据类型的表示。

顺序为:byte8位,short16位,int32位,long64位.所有这些类型都是签名的,没有未签名的版本。但是,位操作将数字视为无符号数(即正确处理所有位)。

字符数据类型 char 是 16 位宽,unsigned,并使用 UTF-16 编码保存字符(但是,可以分配一个 char 表示无效字符代码点的任意无符号 16 位整数)

          width                     minimum                         maximum

SIGNED
byte: 8 bit -128 +127
short: 16 bit -32 768 +32 767
int: 32 bit -2 147 483 648 +2 147 483 647
long: 64 bit -9 223 372 036 854 775 808 +9 223 372 036 854 775 807

UNSIGNED
char 16 bit 0 +65 535

关于java - 整数的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15004944/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com