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

整数的最大值

松高歌
2023-03-14

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

我不明白Java中的范围是怎么不同的,尽管位数是一样的。有人能解释一下吗?

共有1个答案

娄丁雨
2023-03-14

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

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

所有类型都已签名。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语言规范决定了数据类型的表示。

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

字符数据类型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
 类似资料:
  • 问题内容: 在C中,整数(对于32位计算机)为32位,范围为-32,768至+32,767。在Java中,整数(long)也是32位,但范围为-2,147,483,648至+2,147,483,647。 我不了解Java中的范围有何不同,即使位数相同。有人可以解释吗? 问题答案: 在C语言中,语言本身无法确定某些数据类型的表示形式。它因机器而异,在嵌入式系统上int可以为16位宽,尽管通常为32位

  • 我试图从Geeksforgeeks中解决最大整数值问题。 问题如下:给定一个数字(0-9)的字符串S,您的任务是找到可以从字符串中获得的最大值,方法是将“*”或“”运算符放在数字之间,同时从字符串的左到右遍历并一次拾取一个数字。 输入:输入的第一行包含T表示测试用例的数量。T测试用例紧随其后。每个测试用例包含一行表示字符串的输入。 输出:对于每个测试用例,打印获得的最大值。 这就是我所做的: 输入

  • 问题内容: 我正在寻找python中整数的最小值和最大值。例如,在Java中,我们有和。python中是否有类似的东西? 问题答案: Python 3 在Python 3中,此问题不适用。普通int类型是无界的。 但是,你实际上可能正在寻找有关当前解释器的字长的信息,在大多数情况下,该信息将与机器的字长相同。该信息在Python 3中仍以形式提供,这是一个有符号的单词可以表示的最大值。等效地,它是

  • 给定一个整数数组A,返回两个元素之间可能的最大求和距离。对于i,求和距离定义为 例如,在< code>A = [8,2,4,9,5,8,0,3,8,2]的情况下,i=0且j=8时获得的最大和距离为24 O(n2)解很简单。是否有O(n)解(其中n是数组的长度)?

  • 生成包含位数的最低和最高整数值的最佳方法是什么? 例如: =1:Min=0,Max=9 我觉得这应该是一件非常容易完成的事情,但是我正在努力理解它背后的数学。 以下是迄今为止我得到的生成最大值的方法(基于此答案): 如果有人能帮助生成最小值,或者对上面的代码提出改进建议,我将不胜感激。 编辑 我就快到了——这似乎适用于所有情况,除非=1(最小值预期为0)

  • 问题内容: 我试图从我的int数组返回两个最大的整数。我能够返回最大和最小的罚款,但无法获得返回两个最大罚款的算法。任何帮助在这里都将不胜感激。 请原谅我的代码中的任何错误。这是一次练习,问题取自去年大学的考试材料。 这是我的代码: 问题答案: 你可以写