Страница: 1 |
Страница: 1 |
Вопрос: Long 2 ULong
Добавлено: 22.07.06 20:44
Автор вопроса: Sacred Phoenix | ICQ: 304238252
Собсно, сабж. Как конвертировать число типа Long к типу ULong? В том смысле, что знаковое представление нужно изменить на беззнаковое.
Ответы
Всего ответов: 7
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 22.07.06 21:15
Прибавить 2^32?
Номер ответа: 2
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #2
Добавлено: 22.07.06 21:56
2 Sharp: хм, точно!.. Тока прибавлять тогда уж надо 2^64 или Long.MaxValue))) Спасибо!
Номер ответа: 3
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #3
Добавлено: 23.07.06 02:54
Member of: System.Convert
Summary:
Converts the value of the specified 64-bit signed integer to an equivalent 64-bit unsigned integer.
Номер ответа: 4
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #4
Добавлено: 23.07.06 03:03
If (value < 0) Then
Throw New OverflowException(Environment.GetResourceString("Overflow_UInt64")
End If
Return CULng(value)
End Function
Номер ответа: 5
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #5
Добавлено: 23.07.06 11:47
2 EROS: ну я же не насколько ламер, чтобы не знать, как конвертировать типы((( Sharp понял меня правильно, но я объясню.
Что будет, если вызвать
Call CopyMemory(M, &hFFFF, 2)
(пример на vb6)? прально, M = -1. Но мы-то копируем значение 65536! Это пример перевода беззнакового представления к знаковому. Мне надо это же, только наоборот - от знакового к беззнаковому.
Номер ответа: 6
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #6
Добавлено: 23.07.06 14:04
&hFFFF = 65535
MaxValue для беззнаковых целых типов равно 2^b-1, для знаковых 2^(b-1)-1, где b - число бит, а прибавлять надо 2^b
Номер ответа: 7
Автор ответа:
Sacred Phoenix
ICQ: 304238252
Вопросов: 52
Ответов: 927
Профиль | | #7
Добавлено: 23.07.06 20:23
тьфу, ошибся на 1))