[Solved] Why does the following programme gives output as “-128” despite its value assigned as “128”? [duplicate]


Do you know about integer limits? A char value takes up 1 byte. A byte is usually 8 bits. To calculate the limit through the number of bits, the calculation is 2^n-1 meaning an integer with 8 bits has a range from 0 to 255 when unsigned. Since your variable is signed, it allocates a bit to the sign, meaning it has a range from -128 to 127. Since you assigned it as 128, it overflowed, rolling back over to -128. If your program doesn’t use negative numbers, you should use signed char, otherwise you might want to use a short which is 2 bytes.

6

solved Why does the following programme gives output as “-128” despite its value assigned as “128”? [duplicate]