Почему 0xFFFFFFFF является uint, если оно представляет -1?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему 0xFFFFFFFF является uint, если оно представляет -1?

Сообщение Anonymous »

Я не понимаю, почему C# рассматривает литерал 0xFFFFFFFF как uint, хотя он также представляет -1 для типов int.

Ниже приведен код, который был введен в Здесь показано немедленное окно с выводом:

Код: Выделить всё

int i = -1;

-1

Код: Выделить всё

string s = i.ToString("x");

"ffffffff"

Код: Выделить всё

int j = Convert.ToInt32(s, 16);

-1

Код: Выделить всё

int k = 0xFFFFFFFF;

Невозможно неявно преобразовать тип «uint» в «int». Существует явное преобразование (вам не хватает приведения?)

Код: Выделить всё

int l = Convert.ToInt32(0xFFFFFFFF);

OverflowException не было обработано: значение было слишком большим или слишком маленьким для Int32.


Почему шестнадцатеричное число строки можно преобразовать без проблем, а литерал можно преобразовать только с помощью unchecked?

Подробнее здесь: https://stackoverflow.com/questions/336 ... presents-1
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Чем (uint) index >= (uint)_size лучше, чем index >= _size?
    Anonymous » » в форуме C#
    0 Ответы
    28 Просмотры
    Последнее сообщение Anonymous
  • Проблема при входе пользователя в систему: файл iisexpress.exe завершился с кодом -1 (0xffffffff)
    Anonymous » » в форуме C#
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Мое приложение работает, но в журнале указано: «Для идентификатора 0xffffffff не найден идентификатор пакета ff».
    Anonymous » » в форуме Android
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Проблема при входе пользователя в систему: файл iisexpress.exe завершился с кодом -1 (0xffffffff)
    Anonymous » » в форуме C#
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous
  • Преобразование uint в UDINT
    Anonymous » » в форуме Python
    0 Ответы
    34 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»