• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

why it doesn't print max value of char

 
Waez Ali
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hi,
if we try to run following lines of code
System.out.print(Byte.MAX_VALUE+",");
System.out.print(Character.MAX_VALUE);
It will print
127,?
Question:- Why It Doesn't Print 65535 as it is the MAX value of Charecter ?
However we can print
System.out.print(Character.MAX_VALUE - 1);
output
65534
Please Explain me this

Thank You
 
Vladimir Bezugliy
Ranch Hand
Posts: 33
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
In this case
System.out.print(Character.MAX_VALUE);
method will be executed.


But in that case
System.out.print(Character.MAX_VALUE - 1);
will be executed method

because result of (Character.MAX_VALUE - 1) will be int type.
 
David Harkness
Ranch Hand
Posts: 1646
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
The reason it does this is that Character.MAX_VALUE is a char, so it gets turned into a single-character String rather than formatted as 65535. Since you don't have a font that supports the 0xFF00 code page (code point?), it uses the "I don't know what this character is" character: "?".

Another way to view this value as a number, rather than applying math to the number, is to cast it to an int directly.
[ January 27, 2005: Message edited by: David Harkness ]
 
Waez Ali
Greenhorn
Posts: 22
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thanks Valadimir & david.
I got it.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic