Big Moose Saloon
 Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies Register / Login

Vishnu Prakash
Ranch Hand

Joined: Nov 15, 2004
Posts: 1026
1. // int j = 08; // Compile time error
Because octal number can't be 8.
2. int i= 0x10;

Question:
When the first is producing compile-time error then why second is not producing a compile-time error.

garima_cs
Greenhorn

Joined: Feb 24, 2005
Posts: 1
because in octal 1 and 0 both exists.........some of the people might be taking as '10' but it's basically 1 and 0 and thus will not give any compile error.
Alton Hernandez
Ranch Hand

Joined: May 30, 2003
Posts: 443
Originally posted by garima_cs:
because in octal 1 and 0 both exists

Actually, 0x10 is hex.
Tony Morris
Ranch Hand

Joined: Sep 24, 2003
Posts: 1608
Octal is a base-8 number system.
The 8 digits used to create an octal representation are {0,1,2,3,4,5,6,7}.
Clearly, 8 is not permitted in an octal representation, hence, compile-time error.

Hexadecimal is a base-16 number system.
The 8 digits used to create a hexadecimal representation are {0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F}.
Clearly, both 1 and 0 are permitted in a hexadecimal representation, hence, no compile-time error.

Decimal is a base-10 number system.
The 10 digits used to create a decimal representation are {0,1,2,3,4,5,6,7,8,9}.

Binary is a base-2 number system.
The 2 digits used to create a binary representation are {0,1}.

...

I agree. Here's the link: http://aspose.com/file-tools