Arduino serial connection broblem

my code is :

int val = 0;

void setup() {
Serial.begin(9600);
}

void loop() {
while (Serial.available())
val = Serial.read() - '0';
Serial.println(val);
}

in serial monitor:

if i? put a 1 i get
1
-38

what should i do?