Преобразовать 16-разрядное целое число без знака в 16-разрядное целое число со знаком в C # - PullRequest
5 голосов
/ 31 января 2010

Я пишу синтаксический анализатор данных для контроллера робота, и из журнала данных поступает число в диапазоне от 0 до 65535 (16-разрядное целое число без знака, если я не ошибаюсь). Я пытаюсь преобразовать его в 16-разрядное целое число со знаком для отображения пользователю (поскольку это был фактический тип данных до того, как регистратор изменил его).

Может ли кто-нибудь дать мне руку?

Пример:

Какими должны быть значения (0, -1, -2, -3, -4)

Какие значения (0, 65535, 65534, 65533, 65532)

1 Ответ

12 голосов
/ 31 января 2010

Вы пробовали явное приведение?

UInt16 x = 65535;
var y = (Int16)x; // y = -1
...