整数的最大值

在C语言中,整数(对于32位机器)是32位,范围从-32768到+32767。
在Java中,整数(长)也是32位,但范围从-2147483648到+2147483647

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

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

唯一的要求是short int<=整数<=长整数按大小。此外,建议int应表示处理器的本机容量

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

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

宽度最小值最大值
有符号8位-128+127
有符号16位-32768+32767
有符号32位-2147483648+2147483647
有符号64位-9223 372 036 854 775 808+9223 372 036 854 775 807
无符号8位0+255
无符号16位0+65 535
无符号32位0+4 294 967 295
无符号64位0+18 446 744 073 709 551 615

Java中https://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2“rel=”noreferrer“>Java语言规范决定了数据类型的表示形式

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

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

宽度最小值最大值
签署
字节:8位-128+127
短:16位-32768+32767
int:32位-2147483648+2147483647
长:64位-9223 372 036 854 775 808+9223 372 036 854 775 807
未签名
字符16位0+65 535

发表评论