java - 整数的最大值

标签 java c integer max bit

在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确定数据类型的表示。

顺序为:byte 8 位,short 16 位,int 32 位,long 64 位。所有这些类型都是签名的,没有未签名的版本。但是,位操作将数字视为无符号(即正确处理所有位)。

字符数据类型 char 为 16 位宽,无符号,并使用 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/58618116/

相关文章:

java - 在从扫描仪中提取的整数的最后一位上启动 for 循环(java)

java - 是否有专门的业务逻辑层的JavaEE架构?

java - 关于 system.out,需要说明

C数组和函数,如何返回?

c - 使用 XCode 构建、分析、编辑 unix\linux 控制台程序

c - 使用 Address Sanitizer 替代 Valgrind

indexing - 压缩排序的整数

objective-c - 将整数值插入字典

java - 测试中的 Class Hello

java - 程序切片插件Indus和kaveri在eclipse中如何工作?