because 013 is not decimal (base 10). it is octal (base 8). decimal value: (0 * 8 ^ 2) + (1 * 8 ^ 1) + (3 * 8 ^ 0) = 0 + 8 + 3 = 11
which gives the correct (albeit unexpected, at least to you) result 16 when added to 5.
moral of the story: don't add a numeric literal with 0 unless you know what that means
source share