Компьютер определяет, что в памяти записано знаковое или беззнаковое число, на основе информации, определённой разработчиком во время написания программы. 1
Факт наличия знака определяется по старшему (крайнему левому) биту числа. 4 Если он равен 0, то число положительное, если 1 — отрицательное. 4
Также информация о типе числа указывается в коде команды, например, знаковое умножение и беззнаковое умножение имеют разные коды команд. 3
Например, в языке C++ эта информация содержится в так называемом «типе» переменной: если переменная определена как unsigned char val, то она будет распечатана как 255, а если как char val, то как -1. 1