Win a copy of Cross-Platform Desktop Applications: Using Node, Electron, and NW.js this week in the JavaScript forum!
programming forums Java Java JSRs Mobile Certification Databases Caching Books Engineering Languages Frameworks Products This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
Sheriffs:
Saloon Keepers:
Bartenders:

Vishnu Prakash
Ranch Hand
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
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
Posts: 443
Originally posted by garima_cs:
because in octal 1 and 0 both exists

Actually, 0x10 is hex.

Tony Morris
Ranch Hand
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}.

...

 Did you see how Paul cut 87% off of his electric heat bill with 82 watts of micro heaters?