Я смотрел исходный код проекта, и я заметил следующее выражение ( оба keyByte и codedByte имеют тип byte
):
return (byte)(keyByte - codedByte);
Теперь я пытаюсь понять, что будет результатом в случаях, когда keyByte меньше, чем codeodedByte, что приводит к отрицательному целому числу.
После некоторых экспериментов, чтобы понять результат литья отрицательного целого числа, имеющего значение в диапазоне [-255: -1], я получил следующие результаты:
byte result = (byte) (-6); // result = 250
byte result = (byte) (-50); // result = 206
byte result = (byte) (-17); // result = 239
byte result = (byte) (-20); // result = 236
Итак, при условии, что -256 < a < 0
, я смог определить результат:
result = 256 + a;
Мой вопрос: должен ли я всегда ожидать, что это так?