So your compiler says the expression is valid, no error or warning messages, and the output appears to be correct for the value provided. So it appears to be a valid line of code. But just because it's a valid line of code doesn't mean it's doing what you intend.
pID contains int. int is an abstract number. As there is no difference in 01 apple or 1 apple, there is no difference between 000011100 and 11100. You cannot say seeing 2 apples on a table if you should write 2 or 0000002 on a list, so ccannot compiler. You need to tell that explicitely: http://ideone.com/abSgEA