Re: __int64: 4339868*1000=44900704?!
От: Bell Россия  
Дата: 01.03.04 08:55
Оценка: +1
Здравствуйте, Аноним, Вы писали:

А>Почему результатом я получаю не 4339868000? такое впечатление что значение обрезается до 32 бит!

А>Вот код:
А>int FS2; // FS2=4339868
А>__int64 FS;
А>FS = FS2*1000;
А>после чего в FS находится 44900704...

В выражении FS2*1000 оба операнда имеют тип int. А посему и результат выражения имеет тип int.
Надо например так:

__int64 FS = FS2;
FS *= 1000;
Любите книгу — источник знаний (с) М.Горький
__int64: 4339868*1000=44900704?!
От: Аноним  
Дата: 01.03.04 07:10
Оценка:
Почему результатом я получаю не 4339868000? такое впечатление что значение обрезается до 32 бит!
Вот код:
int FS2; // FS2=4339868
__int64 FS;
FS = FS2*1000;
после чего в FS находится 44900704...
Re: __int64: 4339868*1000=44900704?!
От: Plisteron  
Дата: 01.03.04 07:16
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Почему результатом я получаю не 4339868000? такое впечатление что значение обрезается до 32 бит!

А>Вот код:
А>int FS2; // FS2=4339868
А>__int64 FS;
А>FS = FS2*1000;
А>после чего в FS находится 44900704...

Прошу не бить меня ногами, но если попробовать так:
FS = (__int64)FS2 * (__int64)1000;

Ы?
Re[2]: __int64: 4339868*1000=44900704?!
От: Аноним  
Дата: 01.03.04 07:18
Оценка:
Здравствуйте, Plisteron, Вы писали:

P>Здравствуйте, Аноним, Вы писали:


А>>Почему результатом я получаю не 4339868000? такое впечатление что значение обрезается до 32 бит!

А>>Вот код:
А>>int FS2; // FS2=4339868
А>>__int64 FS;
А>>FS = FS2*1000;
А>>после чего в FS находится 44900704...

P>Прошу не бить меня ногами, но если попробовать так:

P>
P>FS = (__int64)FS2 * (__int64)1000;
P>

P>Ы?

Действительно!
спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.