Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите разобраться с типами данных, Число не помещается в __int64 
:(
    Опции темы
Doors
Дата 22.4.2003, 09:54 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Перемножаются целые числа, но результат имеет более 19 знаков и не помещается в __int64. Как можно обойти эту проблему?
  Вверх
aMiGo!
Дата 22.4.2003, 11:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Попробуй использовать не инт64 а чо нибудь покруче smile.gif

Вот тебе бредовая идея...
попробуй делить это число допустим на десять, а потом, если нужно получить нужное число то умножай
--------------------
With the best regards, Anton
PM MAIL   Вверх
Doors
Дата 22.4.2003, 11:27 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Цитата(aMiGo @ 22.4.2003, 11:04)
Попробуй использовать не инт64 а чо нибудь покруче smile.gif

Вот тебе бредовая идея...
попробуй делить это число допустим на десять, а потом, если нужно получить нужное число то умножай

Во-первых, при делении числа - оно перестанет быть целым, а во-вторых - оно нужно как раз сразу, перемноженным, для дальнейшей работы.
  Вверх
Alex101
Дата 22.4.2003, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник Клуба
Сообщений: 891
Регистрация: 8.4.2002
Где: Москва

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



Тогда используй длинную арифметику - цифры числа можешь хранить в массиве (одна цифра в байте или полубайте). А затем используй умножение "в столбик".


--------------------
С уважением, А. Фролов.
PM MAIL ICQ   Вверх
Step
Дата 22.4.2003, 11:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



использую другой тип данных


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
DENNN
Дата 22.4.2003, 11:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 3878
Регистрация: 27.3.2002
Где: Москва

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



Или библиотеку скачай какую-нибудь математическую. smile.gif
PM ICQ   Вверх
brb
Дата 22.4.2003, 15:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



ab*cd=(10a+*b)*(10*c+d)=100*a*c + 10*a*d + 10*c*b + b*d=100* a*c + 10(a*d+b*c) + b*d
each a,b,c,d < 10 => any a*b, a*c,a*d,b*c,b*d,c*d <100 and so on...
understood?

Это сообщение отредактировал(а) brb - 22.4.2003, 15:44
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
ameno7256
Дата 22.4.2003, 23:53 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











в инете полно готовых классов, которые работают с числами любой длины. Посмотри на codeguru.com
  Вверх
Baa
Дата 23.4.2003, 08:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Цитата(Step @ 22.4.2003, 11:44)
использую другой тип данных

Интересно, какой же?
з.ы. че-то я не припомню типа данных больше чем __int64


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Step
Дата 23.4.2003, 08:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



long double - 10 B


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Baa
Дата 23.4.2003, 08:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Step, посмотри внимательнее... сказано надо целый тип данных енто раз и два long double = 8 B
Код

long double ttt;
printf ("%d", sizeof (ttt)*8);

__int64 = 8b too.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
Step
Дата 23.4.2003, 08:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



я вот нашел пояснения внизу вот только понять его на английском не могу, объясни че за хрень


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Step
Дата 23.4.2003, 08:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

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



по поводу целого типа - это при знании асемблера можно решить, кстати еще есть и сопроцесор... и техналогия ммх которая работает с 10 байтовами числами, и взависимости от режима, они будут либо целые либо с плавующей


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
Baa
Дата 23.4.2003, 10:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



Step, да можно свой класс написать, который будет скоко угодно байт... вопрос решить это стандартными средствами... а оно не возможно wink.gif
з.ы. причем здесь ассемблер? wink.gif смахивает на софистику с заметением следов.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
brb
Дата 23.4.2003, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Baa
sizeof(double) - 8
sizeof(long double) - 10;
Лонг дабл проиcходит от 10-байтного представления числа в х87 сопре. Другое дело, что это никак не целое.
Цитата
C уважением Анатолий
постарайтесь прочитать и понять вопрос, а не сыпать "ответами"!
-----------
"Понос красноречия еще никого не избавил от запора мысли"

Это сообщение отредактировал(а) brb - 23.4.2003, 16:27
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Baa
Дата 23.4.2003, 14:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2639
Регистрация: 12.4.2002
Где: Москва

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



brb, простая программа на MVC++ 7.0 под винду.
Код

main ()
{
printf ("long double %db\n", sizeof (long double));
printf ("double %db\n", sizeof (double));
}

Угадай, чего выведет? А вот и не правильно думаешь! она выведет два раза по 8Б.


--------------------
"Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande
PM ICQ   Вверх
brb
Дата 23.4.2003, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Baa
Try it in BC++. Guess what you'll get... 10 and 8!
Код

#include <stdio.h>

struct aaa{
 int  i;
 double  a;
 long double  b;
};

void main(){
 struct aaa bbb[3];
 printf("i = %d, d = %d, ld = %d, struct = %d\n\r",
         sizeof(int), sizeof(double),sizeof(long double), sizeof(aaa));
}

Цитата
i = 2, d = 8, ld = 10, struct = 20

PS. Sorry, I don't have russian here.

Это сообщение отредактировал(а) brb - 23.4.2003, 22:09
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




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


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

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