Разница между подписанными и неподписанными 16-битными BCD?

Как отличить? Например, скажем, у вас есть 0110 0101 1001 0011. BCD без знака — 6593, но что такое значение со знаком?


person trusktr    schedule 11.11.2010    source источник


Ответы (2)


Обычно вы определяете разницу, явно сохраняя знак.

Дополнение Radix (en.wikipedia.org/wiki/Method_of_complements)

person dan04    schedule 11.11.2010
comment
ну, это странно, потому что в моем классе сборки 0110 000 000 000 предположительно 6000 без знака (очевидно), но -4000 со знаком. Как это -4000 подписано? - person trusktr; 11.11.2010
comment
ага, это действительно то, что здесь происходит. Вы должны были опубликовать ответ! - person trusktr; 11.11.2010

в обычной двоичной системе числа со знаком используют MSB (самый значащий бит) для определения знака числа, остальная часть числа является фактическим значением.

В отличие от упакованного BCD, 4 LSb (младшие значащие биты) представляют знак, а остальная часть (слева) числа представляет фактическое значение.

person Ken D    schedule 11.11.2010