![]() |
|
Модераторы: Daevaorn |
![]()
|
|
| Doors |
|
|||
|
Unregistered |
Перемножаются целые числа, но результат имеет более 19 знаков и не помещается в __int64. Как можно обойти эту проблему?
|
|||
|
||||
| aMiGo! |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 124 Регистрация: 6.4.2003 Где: Тула Репутация: нет Всего: нет |
Попробуй использовать не инт64 а чо нибудь покруче
Вот тебе бредовая идея... попробуй делить это число допустим на десять, а потом, если нужно получить нужное число то умножай --------------------
With the best regards, Anton |
|||
|
||||
| Doors |
|
|||
|
Unregistered |
Во-первых, при делении числа - оно перестанет быть целым, а во-вторых - оно нужно как раз сразу, перемноженным, для дальнейшей работы. |
|||
|
||||
| Alex101 |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 891 Регистрация: 8.4.2002 Где: Москва Репутация: нет Всего: 10 |
Тогда используй длинную арифметику - цифры числа можешь хранить в массиве (одна цифра в байте или полубайте). А затем используй умножение "в столбик".
-------------------- С уважением, А. Фролов. |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
использую другой тип данных
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| DENNN |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3878 Регистрация: 27.3.2002 Где: Москва Репутация: 1 Всего: 43 |
Или библиотеку скачай какую-нибудь математическую.
|
|||
|
||||
| brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 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 --------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
| ameno7256 |
|
|||
|
Unregistered |
в инете полно готовых классов, которые работают с числами любой длины. Посмотри на codeguru.com
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Интересно, какой же? з.ы. че-то я не припомню типа данных больше чем __int64 -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
long double - 10 B
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Step, посмотри внимательнее... сказано надо целый тип данных енто раз и два long double = 8 B
__int64 = 8b too. -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
я вот нашел пояснения внизу вот только понять его на английском не могу, объясни че за хрень
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Step |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
по поводу целого типа - это при знании асемблера можно решить, кстати еще есть и сопроцесор... и техналогия ммх которая работает с 10 байтовами числами, и взависимости от режима, они будут либо целые либо с плавующей
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва Репутация: 8 Всего: 12 |
Step, да можно свой класс написать, который будет скоко угодно байт... вопрос решить это стандартными средствами... а оно не возможно
з.ы. причем здесь ассемблер? -------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
Baa
sizeof(double) - 8 sizeof(long double) - 10; Лонг дабл проиcходит от 10-байтного представления числа в х87 сопре. Другое дело, что это никак не целое.
----------- "Понос красноречия еще никого не избавил от запора мысли" Это сообщение отредактировал(а) brb - 23.4.2003, 16:27 --------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
![]()
|
| Правила форума "С++:Общие вопросы" | |
|
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |