Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема CValue и 4 миллиарда (число прочтений - 2438 )
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
CValue и 4 миллиарда
06. Июня 2008 :: 06:43
Печать  
как CValue или CNumeric присвоить положительное число >= 2147483648 ?
  

1&&2&&3
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3046
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: CValue и 4 миллиарда
Ответ #1 - 06. Июня 2008 :: 07:23
Печать  
не придумал ничего лучшего  Нерешительный
Код
Выбрать все
DWORD dw = (DWORD)pMsg->lParam;
CNumeric num = (int)(dw/2);
num = num * CNumeric(2);
num = num + CNumeric((int)(dw&1));
CValue vLParam(num);
 

  

1&&2&&3
Наверх
 
IP записан
 
kms
1c++ power user
1c++ moderator
Отсутствует


я хочу, чтоб сюда проложили
дорогу оттуда...

Сообщений: 4632
Зарегистрирован: 19. Мая 2006
Re: CValue и 4 миллиарда
Ответ #2 - 06. Июня 2008 :: 09:13
Печать  
Еще можно инициализировать обрезанным по маске 0x7FFFFFFF числом, и если нужно, сложить с заранее заготовленным CNumeric, равным беззнаковому 0x80000000.
  

De quelle planète es-tu?
Наверх
 
IP записан
 
NeSpec
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 5
Зарегистрирован: 09. Июня 2008
Re: CValue и 4 миллиарда
Ответ #3 - 09. Июня 2008 :: 08:09
Печать  
trad писал(а) 06. Июня 2008 :: 06:43:
как CValue или CNumeric присвоить положительное число >= 2147483648 ?


А почему нельзя сформировать случайное положительное число (т.е. взять модуль случайного числа) и прибавить к нему 2147483648? Т.е. значение будет больше или равно 2147483648.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать