Declaration

Hi all... I am declaring an integer like:

**int i=012;**

When I am printing this value of**i**, it is printing 10. Why so ?

When I am printing this value of

because the 0 is meaningless in this case.

it will work if you declare as STRING ...

well actually not so sure

it will work if you declare as STRING ...

well actually not so sure

When you declare an integer, and the leading digit is a '0', the compiler considers the value to be an Octal representation of the number. So, in your case, it is reading in 12 base 8.

When you print it out, it converts it to decimal. so you get 1*8 + 2*1 or 10.

When you print it out, it converts it to decimal. so you get 1*8 + 2*1 or 10.

you can tell octal numbers because they have the preceding 0

so in your case:

int i = 012;

this is how it is represented:

the**0** tells you its octal,

the**1** tells you how many 8's there are, in this case only one,

the**2** tells you how many 1's there are, in this case 2,

so (8*1) + (1*2)= 10

hope this helps.

Davy

so in your case:

int i = 012;

this is how it is represented:

the

the

the

so (8*1) + (1*2)= 10

hope this helps.

Davy

Wink, wink, nudge, nudge, say no more ... https://richsoil.com/cards

All times above are in ranch (not your local) time.

The current ranch time is

Nov 17, 2017 14:30:22.

The current ranch time is

Nov 17, 2017 14:30:22.