fast schon zu peinlich um überhaupt zu fragen

Der verkürzte Code, worum es geht:
Code: Alles auswählen
program Project1;
var a,b:Byte;
begin
a:=50;
b:=250;
if a-b < 10 then Writeln('ja') else Writeln('nein'); // es wird ja ausgegeben
if Byte(a-b) < 10 then Writeln('ja') else Writeln('nein'); // es wird nein ausgegeben
Writeln(a-b); // -200
Writeln(Byte(a-b)); // 56
ReadLn;
end.
Wenn ich von 50 den Wert 250 abziehe, gibt es natürlich einen Unterlauf.
Das Ergebnis müsste 56 sein.
Dies trifft jedoch nur zu, wenn ich einen expliziten "Byte Typecast" mache, obwohl es ja schon Bytes sind.
Ist das Ergebnis der Subtraktion automatisch ein Integer ?