0
Please explain what the output is showing
1 Odpowiedź
+ 5
Vaibhav Chauhan the output you see is the console representation of an invalid ASCII character value 249.
To explain why it is 249, I need to describe how negative integers are stored. In case you already are aware how it works, I will only give it briefly. For more detail, you may search it out. Negative integers are stored in Two's Complement form. Two's Complement of a number is made by performing bitwise Not and adding 1. The value in your variable v2 is -7. To print the character it uses the unsigned value. As an unsigned value it would have the same bit pattern as 249. Here is the Two's Complement process for -7:
00000111 (7)
11111000 (~7)
11111001 (~7)+1 = -7
128+64+32+16+8+1 = 249
[more easily: 256 - 7 = 249]
Valid ASCII characters are only in the range 0 - 127. So 249 is in the Extended ASCII set, which has non-standard character representation, therefore it prints a special question mark character.