Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ushort | ushort = uint / 3 сообщений из 3, страница 1 из 1
07.10.2013, 12:47
    #38418761
Артем_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ushort | ushort = uint
Почему при побитовом сложении двух ushort результат не ложится в uint , а требует int ?

Код: c#
1.
2.
3.
int i1 = (ushort1 << 16) | ushort2; // Ок

uint i2 = (ushort1 << 16) | ushort2; // Ошибка
...
Рейтинг: 0 / 0
07.10.2013, 13:27
    #38418828
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ushort | ushort = uint
Артем_84,

ushort<<16 даёт int.
причина - сдвиг влево определён только для int,uint,long,ulong
короткие бесзнаковые перед сдвигом неявно приводятся к int
...
Рейтинг: 0 / 0
07.10.2013, 15:39
    #38419049
Артем_84
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ushort | ushort = uint
Спасибо, ясно.

Просто я ожидал, что ushort<<16 даст uint

а они приводятся к int
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / ushort | ushort = uint / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]