Поскольку вы, похоже, получаете байты от функции Receivebyte (), вы должны хранить их как байты (беззнаковые символы), а не как целые числа, поскольку использование целого числа для хранения одного байта тратит 3 байта памяти.
В противном случае ваша реализация эха должна работать - даже если вы захотите добавить защиту от пользователя, отправляющего символы, которые не являются числовыми.
Вам нужно будет преобразовать символы ASCII '5' и«3» (коды ASCII 53 и 51) для их числового значения (вычтите 48 из каждого, поскольку числа варьируются от 48 до 57 в схеме кодирования ASCII)