Я уверен, что это очень простой ответ, но я не могу понять это. Я был представлен со значением в формате UInt32
, хотя это максимум будет 65535. Он reqiured преобразовать его в формат Int16
для целей презентации, чтобы выводимая диапазон -32768 до 32767.Как преобразовать 0-65535 в эквивалент Int16 -32768-32767?
Простой Convert.ToInt16(65535)
исключает, что 65535 слишком велико или слишком мал для Int16
.
Есть ли встроенная функция для обработки этого или может кто-то указать мне на решение этого?
РЕДАКТИРОВАТЬ: Редактировано снова последующее обсуждение - 65535 не сдвинутый диапазон на самом деле -32768, поэтому я хочу сделать преобразование из UInt32 65535 в Int16 -32768. Спасибо за все ваши ответы.
Вы хотите изменить тип без изменения байтов? Нет эквивалента '65535', представленного' Int16', следовательно, сбой преобразования. Если вы объясните, почему вы этого хотите, мы можем помочь больше. – Jodrell
Очевидно, что 65535 слишком велико для int16. Что вы хотите, чтобы выход был? – 2013-03-01 08:59:20
Ответ, который вы отметили, не соответствует редактированию в вашем вопросе. Это делает это довольно вводящим в заблуждение. Измените изменение или отметьте точный ответ. – Jodrell