In C, the language itself does not determine the representation of certain datatypes. It can vary from machine to machine, on embedded systems the int can be 16 bit wide, though usually it is 32 bit.

The only requirement is that short int <= int <= long int by size. Also, there is a recommendation that int should represent the native capacity of the processor.

All types are signed. The unsigned modifier allows you to use the highest bit as part of the value (otherwise it is reserved for the sign bit).

Here's a short table of the possible values for the possible data types:

          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

In Java, the Java Language Specification determines the representation of the data types.

The order is: byte 8 bits, short 16 bits, int 32 bits, long 64 bits. All of these types are signed, there are no unsigned versions. However, bit manipulations treat the numbers as they were unsigned (that is, handling all bits correctly).

The character data type char is 16 bits wide, unsigned, and holds characters using UTF-16 encoding (however, it is possible to assign a char an arbitrary unsigned 16 bit integer that represents an invalid character codepoint)

          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
Answer from gaborsch on Stack Overflow
🌐
GeeksforGeeks
geeksforgeeks.org › java › integer-max_value-and-integer-min_value-in-java-with-examples
Integer.MAX_VALUE and Integer.MIN_VALUE in Java with Examples - GeeksforGeeks
July 12, 2025 - Example 2: Trying to initialize ... + " Integer.MAX_VALUE + 1"); // Try to store value Integer.MAX_VALUE + 1 int N = Integer.MAX_VALUE + 1; // Print the value of N System.out.println("N = " + N); } catch (Exception e) { ...
🌐
Oracle
docs.oracle.com › javase › 8 › docs › api › java › lang › Integer.html
Integer (Java Platform SE 8 )
October 20, 2025 - Adds two integers together as per the + operator. ... Returns the greater of two int values as if by calling Math.max. ... Returns the smaller of two int values as if by calling Math.min. ... Java™ Platform Standard Ed.
Discussions

java - Integer min and max values - Stack Overflow
I am a newbie in programming. I was studying from a Java object programming book and performing the tutorials and examples on the book simultaneously on computer. In the book it says that the maxim... More on stackoverflow.com
🌐 stackoverflow.com
Beginner here; please help with explaining why Integer.MAX_VALUE and Integer.MIN_VALUE is assigned as values in this code.
Think of only one, you are looking for the lowest number in an array, you take the first number and compare it to your minValue, if it is smaller you choose that as new minValue and try the next. If you start minValue as the absolute MIN_VALUE, it will never find a smaller number in your array. SO you should start minValue as higher as possible and maxValue as lover. (Or you can just initiate them as the first number in your array) More on reddit.com
🌐 r/learnjava
3
0
July 4, 2022
Why does 2 * Integer.MAX_VALUE return -2?
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full - best also formatted as code block You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns. More on reddit.com
🌐 r/learnjava
20
14
May 21, 2022
Why is Java's 32-bit Integer Max Value Larger than C’s? - TestMu AI Community
How does the Java integer max value differ from C, even with the same number of bits? In C, a 32-bit integer typically ranges from -32,768 to +32,767, whereas in Java, an int (which is 32-bit) has a range of -2,147,483,648 to +2,147,483,647. I don’t understand how Java integer max value is ... More on community.testmuai.com
🌐 community.testmuai.com
0
March 10, 2025
Top answer
1 of 11
450

In C, the language itself does not determine the representation of certain datatypes. It can vary from machine to machine, on embedded systems the int can be 16 bit wide, though usually it is 32 bit.

The only requirement is that short int <= int <= long int by size. Also, there is a recommendation that int should represent the native capacity of the processor.

All types are signed. The unsigned modifier allows you to use the highest bit as part of the value (otherwise it is reserved for the sign bit).

Here's a short table of the possible values for the possible data types:

          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

In Java, the Java Language Specification determines the representation of the data types.

The order is: byte 8 bits, short 16 bits, int 32 bits, long 64 bits. All of these types are signed, there are no unsigned versions. However, bit manipulations treat the numbers as they were unsigned (that is, handling all bits correctly).

The character data type char is 16 bits wide, unsigned, and holds characters using UTF-16 encoding (however, it is possible to assign a char an arbitrary unsigned 16 bit integer that represents an invalid character codepoint)

          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
2 of 11
84

In C, the integer(for 32 bit machine) is 32 bit and it ranges from -32768 to +32767.

Wrong. 32-bit signed integer in 2's complement representation has the range -231 to 231-1 which is equal to -2,147,483,648 to 2,147,483,647.

🌐
CodeGym
codegym.cc › java blog › java numbers › integer max_value in java with examples
Integer MAX_VALUE in Java with Examples
December 10, 2024 - The Integer MAX_VALUE in Java is a constant that represents the maximum positive integer value. Integer.MAX_VALUE is a number in the Java Integer сlass of java.lang package. It is the maximum possible Integer number that can be represented in 32 bits...
🌐
Runestone Academy
runestone.academy › ns › books › published › apcsareview › VariableBasics › minAndMax.html
3.7. Integer Min and Max — AP CSA Java Review - Obsolete
Why is there one more negative number than positive number? It is because 0 is considered a positive number. What do the last two lines print out? Did this surprise you? Java will actually return the maximum integer value if you try to subtract one from the minimum value.
Find elsewhere
🌐
Reddit
reddit.com › r/learnjava › beginner here; please help with explaining why integer.max_value and integer.min_value is assigned as values in this code.
r/learnjava on Reddit: Beginner here; please help with explaining why Integer.MAX_VALUE and Integer.MIN_VALUE is assigned as values in this code.
July 4, 2022 -

I was searching for a way to find the min and max value within a number of integers and I came across this code:

Scanner in = new Scanner(System.in);

int maxNum = Integer.MIN_VALUE;
int minNum = Integer.MAX_VALUE;
while (scanner.hasNextInt()) {
  int num = scanner.nextInt();
  maxNum = Math.max(maxNum, num);
  minNum = Math.min(minNum, num);
}

System.out.println("The maximum number: " + maxNum);
System.out.println("The minimum number: " + minNum);

I am struggling to wrap my mind around Integer.MAX_VALUE and Integer.MIN_VALUE. Why are they assigned as values and how does it work with the Math. min & max methods. Why is the variable maxNum assigned the value Integer.MIN_VALUE and minNum assigned the value Integer.MAX_VALUE?

Thanks.

Top answer
1 of 3
3
Think of only one, you are looking for the lowest number in an array, you take the first number and compare it to your minValue, if it is smaller you choose that as new minValue and try the next. If you start minValue as the absolute MIN_VALUE, it will never find a smaller number in your array. SO you should start minValue as higher as possible and maxValue as lover. (Or you can just initiate them as the first number in your array)
2 of 3
1
Please ensure that: Your code is properly formatted as code block - see the sidebar (About on mobile) for instructions You include any and all error messages in full - best also formatted as code block You ask clear questions You demonstrate effort in solving your question/problem - plain posting your assignments is forbidden (and such posts will be removed) as is asking for or giving solutions. If any of the above points is not met, your post can and will be removed without further warning. Code is to be formatted as code block (old reddit/markdown editor: empty line before the code, each code line indented by 4 spaces, new reddit: https://imgur.com/a/fgoFFis ) or linked via an external code hoster, like pastebin.com, github gist, github, bitbucket, gitlab, etc. Please, do not use triple backticks (```) as they will only render properly on new reddit, not on old reddit. Code blocks look like this: public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } } You do not need to repost unless your post has been removed by a moderator. Just use the edit function of reddit to make sure your post complies with the above. If your post has remained in violation of these rules for a prolonged period of time (at least an hour), a moderator may remove it at their discretion. In this case, they will comment with an explanation on why it has been removed, and you will be required to resubmit the entire post following the proper procedures. To potential helpers Please, do not help if any of the above points are not met, rather report the post. We are trying to improve the quality of posts here. In helping people who can't be bothered to comply with the above points, you are doing the community a disservice. I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.
🌐
Baeldung
baeldung.com › home › core concepts › programming › maximum value of an integer: java vs c vs python
Maximum Value of an Integer: Java vs C vs Python | Baeldung on Computer Science
March 18, 2024 - This means, as with Java BigInteger, we use as much memory as needed for an arbitrarily big integer. So, in terms of programming language, this question doesn’t apply at all for Python, cause the plain integer type is, theoretically unbounded. What is not unbounded is the current interpreter’s word size, which is the same as the machine’s word size in most cases. That information is available in Python as sys.maxsize...
🌐
Reddit
reddit.com › r/learnjava › why does 2 * integer.max_value return -2?
r/learnjava on Reddit: Why does 2 * Integer.MAX_VALUE return -2?
May 21, 2022 -

I know that an int is a 32 bit number with a range of -2,147,483,648 to 2,147,483,647. I'm learning about overflow, and I am trying to figure out why 2 * Integer.MAX_VALUE returns -2.

Would anyone mind explaining overflow and why this is calculated this way, please?

Thank you in advance! :)

Edit: Thanks for the replies, everyone. I still don't completely understand it, but at least I have a good start to go down the rabbit hole of binary and hexadecimal numbers! :D

Edit #2: I think I get it now, and if anyone is curious this stack overflow question explains it well. Thanks again for the responses.

🌐
TestMu AI Community
community.testmuai.com › ask a question
Why is Java's 32-bit Integer Max Value Larger than C’s? - TestMu AI Community
March 10, 2025 - How does the Java integer max value differ from C, even with the same number of bits? In C, a 32-bit integer typically ranges from -32,768 to +32,767, whereas in Java, an int (which is 32-bit) has a range of -2,147,483,…
🌐
Quora
quora.com › What-is-the-maximum-number-of-digits-an-integer-can-have-in-Java-or-C-programming-language
What is the maximum number of digits an integer can have in Java or C++ programming language? - Quora
Answer (1 of 3): Hello, First of all, you’ll have to know that integers (and other numerical types) are represented in binary, in some kind of “interrupter” whose can let the power pass through and whose value is conventionally set to 1 if it does and to 0 if it doesn’t Second thing you have to...
🌐
Quora
quora.com › How-come-the-maximum-value-of-int-is-2-147-483-647-in-Java
How come the maximum value of int is 2,147,483,647 in Java? - Quora
When you have 32 bits all of them are ones, you have 2^{32}-1 which equals 4294967295. So this is the maximum number that an unsigned int can hold. Note that the minimum number an unsigned int...
🌐
Code Like A Girl
code.likeagirl.io › what-happens-when-you-add-1-to-integer-max-value-in-java-09020d0906a7
What Happens When You Add 1 to Integer.MAX_VALUE in Java | by Nouhaila El Ouadi | Code Like A Girl
October 23, 2024 - What Happens When You Add 1 to Integer.MAX_VALUE in Java If you’ve ever worked with Java’s primitive types, you’ve probably encountered Integer.MAX_VALUE. It represents the largest possible …
🌐
JanBask Training
janbasktraining.com › community › java › max-value-of-integer
max value of integer | JanBask Training Community
April 1, 2025 - Overflow Issues – Exceeding the max value can cause unexpected behavior in some languages. Performance Considerations – Larger numbers consume more memory and processing power. Choosing the Right Type – Always select a data type that fits your needs without wasting resources. If you’re working with numbers beyond these limits, consider using BigInt (JavaScript), BigInteger (Java), or arbitrary precision integers ...
🌐
Verve AI
vervecopilot.com › interview-questions › why-is-understanding-java-int-max-value-essential-for-your-technical-interview-success
Why Is Understanding Java Int Max Value Essential For Your Technical Interview Success
Specifically, this value is 2,147,483,647 [^1]. This limit exists because int is a 32-bit signed two's complement integer, meaning it uses a fixed amount of memory to store numerical data.
🌐
Tutorialspoint
tutorialspoint.com › home › java/lang › java math.max() method
Java Math.max() Method
September 1, 2008 - The java.lang.Math.max(int a, int b) returns the greater of two int values. That is, the result is the argument closer to positive infinity. If the arguments have the same value, the result is that same value.
🌐
W3Schools
w3schools.com › java › java_data_types_numbers.asp
Java Numbers
How Tos Add Two Numbers Swap Two Variables Even or Odd Number Reverse a Number Positive or Negative Square Root Area of Rectangle Celsius to Fahrenheit Sum of Digits Check Armstrong Num Random Number Count Words Count Vowels in a String Remove Vowels Count Digits in a String Reverse a String Palindrome Check Check Anagram Convert String to Array Remove Whitespace Count Character Frequency Sum of Array Elements Find Array Average Sort an Array Find Smallest Element Find Largest Element Second Largest Array Min and Max Array Merge Two Arrays Remove Duplicates Find Duplicates Shuffle an Array Factorial of a Number Fibonacci Sequence Find GCD Check Prime Number ArrayList Loop HashMap Loop Loop Through an Enum
🌐
TutorialsPoint
tutorialspoint.com › integer-max-value-and-integer-min-value-in-java-with-examples
Integer.MAX_VALUE and Integer.MIN_VALUE in Java with Examples
July 20, 2023 - The Integer class of Java provides two constants named Integer.MAX_VALUE and Integer.MIN_VALUE represents the maximum and minimum possible values for an integer variable in Java. The actual value of Integer.MAX_VALUE is 231 -1 which is equivalent to 2147483647 and the actual value of ...
🌐
BeginnersBook
beginnersbook.com › 2022 › 10 › java-integer-max-method
Java Integer max() Method
October 25, 2022 - The max() method returns greater of two int numbers passed as arguments to this method. It works similar to Math.max() method. Hierarchy: java.lang Package -> Integer Class -> max() Method · public static int max(int a, int b) a – An int number passed as first argument to max method.
🌐
Educative
educative.io › answers › what-is-integermaxvalue
What is Integer.MAX_VALUE?
Integer.MAX_VALUE represents the maximum positive integer value that can be represented in 32 bits (i.e., 2147483647). This means that no number of type Integer that is greater than 2147483647 can exist in Java.