Int to UInt

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Int to UInt

Сообщение Joo » 13.02.2009 (Пт) 8:43

Народ подскажите есть в VB.NET какая нить функци переводящая Int в UInt???
В C# достаточно написать
Код: Выделить всё
uintVar = (uint) IntVar

В VB.NET такое не проканает
Код: Выделить всё
UIntVar = CUInt(IntVar)

так тоже
Код: Выделить всё
UIntVar = DirectCast(IntVar, UInt32)

Ошибка: Переполнение в результате выполнения арифметической операции.
Я в принципе знаю откуда у этой ошибки растут ноги, но блин неужели не придумали перевода знакового в беззнаковое в VB
Приходится делать так
Код: Выделить всё
UIntVar=UInt32.MaxValue * -CInt(IntVar< 0) + IntVar + 1
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

MIT
Мега гуру
Мега гуру
Аватара пользователя
 
Сообщения: 2211
Зарегистрирован: 17.09.2006 (Вс) 22:46

Re: Int to UInt

Сообщение MIT » 13.02.2009 (Пт) 13:17

Замечательно все работает:
Код: Выделить всё
        Dim i As Integer = 100
        Dim ui As UInteger = 100
        MsgBox(CInt(ui))
        MsgBox(CUInt(i))

Если тебе надо абсолютное число, то примерно так:
Код: Выделить всё
        Dim i As Integer = -100
        MsgBox(CUInt(i - Integer.MinValue))


Или я не понял задачи...
Изображение
You can change your face, but can`t change your mind. No matter what you do.
Создайте еще более понятный интерфейс и мир создаст еще более тупого юзера. (с) Баш

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Int to UInt

Сообщение Joo » 13.02.2009 (Пт) 13:49

Ты не правильно понял, или просто незнаешь...
Если Int = -1, то UInt должен быть равен 4294967295, как я уже сказал C# это делает без всякого гемороя
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Re: Int to UInt

Сообщение Nord777 » 13.02.2009 (Пт) 15:22

В свойствах VB-проекта отключи проверку переполнения.
В C# она отключена по умолчанию.
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Int to UInt

Сообщение Joo » 13.02.2009 (Пт) 17:35

Nord777 писал(а):В свойствах VB-проекта отключи проверку переполнения.
В C# она отключена по умолчанию.

Спасибо!!!
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: Mail.ru [бот] и гости: 102

    TopList