When an integer is initialized as int a = 010
, a
is actually set to 8, but for int a = 10
, a
is set to 10.
Can anyone tell me why a
is not set to 10 for int a = 010
?
Because it's interpreting 010
as a number in octal format. And in a base-8 system, the number 10
is equal to the number 8
in base-10 (our standard counting system).
More generally, in the world of C++, prefixing an integer literal with 0
specifies an octal literal, so the compiler is behaving exactly as expected.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With