Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Int64 становится отрицательным, тривиальный вопрос 
V
    Опции темы
Crusaderr
Дата 25.5.2011, 08:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 4.10.2007

Репутация: нет
Всего: нет



Visual C++ 2008

есть несколько переменных Int64


Код
//166*16777216=2785017856
Int64 checksum1=166*16777216;
Int64 checksum2=2785017856;


при пошаговом просмотре выясняется, что
checksum1=-1509949440
при том что checksum2=2785017856

как это победить, чтобы в checksum1 записывалось произведение?
PM MAIL WWW ICQ Jabber   Вверх
likegift
Дата 25.5.2011, 09:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 208
Регистрация: 14.10.2008

Репутация: нет
Всего: 3



минус, потому что переполнение. переполнение, потому что не явный int64.
вот:
Код

Int64 checksum1 = (Int64)166*16777216;

PM MAIL   Вверх
appo
Дата 25.5.2011, 09:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 22.5.2011

Репутация: нет
Всего: нет



По идее еще 
Код

Int64 checksum1 = 166*16777216LL;

должно сработать.
PM MAIL   Вверх
Voyager
Дата 25.5.2011, 09:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 532
Регистрация: 8.2.2005

Репутация: 3
Всего: 18



Можно попробовать UInt64.
PM   Вверх
Crusaderr
Дата 25.5.2011, 09:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 69
Регистрация: 4.10.2007

Репутация: нет
Всего: нет



Код
Int64 checksum1 = (Int64)166*16777216;

помогло, большое спасибо
PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Partizan
PashaPash

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | .NET для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0409 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.