Converting char into int in C++ gives me different value

I tried to convert the character ð which is in ASCII encoding (the one that my program uses) equal to 11110000 in base-2 and 240 in base-10 into an int, as:

char y = 'ð'; int c = y; cout << c; 

What I think should be printed is 240, but what was actually printed is -16.
240 in decimal is 00000000 00000000 00000000 11110000 in binary, and -16 is represented by 11111111 11111111 11111111 11110000 using two’s complement (which is the one used in my program), so why did the binary places to the left of my number ‘11110000’ got filled with ones (which alter the value) instead of zeros (which don’t alter the value)?