Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Visual C++ / С/C++

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 06.12.2007, 18:06   #1
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
Cool Расширение типа в C++

привет.
допустим у нас есть стандартный C++, в котором максимальный тип - восьмибайтовый long. в него можно поместить определённые числа, меньшие чем 2^64.
если надо поместить число большее чем long_max, то необходимо использовать два long'а. как правильно сделать математические операции над таким типом, и ввод-вывод?
я думаю, сложение делается так - складываются младшие части, потом складываются старшие части и перенос из младшего разряда. я знаю как проверить бит переноса на ассемблере, но не знаю как на C++
Код:
mov eax, long1_low
add eax, long2_low
mov long3_low, eax

mov eax, long1_high
adc eax, long2_high
mov long3_high, eax
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама:


Старый 14.12.2007, 09:22   #2
ev_Genius
Новичок
 
Пол:Мужской
Регистрация: 08.09.2006
Сообщений: 28
Репутация: 2
По умолчанию Ответ: Расширение типа в C++

Ищи алгоритмы для работы с "большими числами". Можно сделать и ассемблерную вставку.
ev_Genius вне форума
 
Ответить с цитированием Вверх
Старый 22.09.2009, 12:27   #3
mikejones
Неактивный пользователь
 
Регистрация: 22.09.2009
Сообщений: 3
Репутация: 0
По умолчанию Re: Расширение типа в C++

Без ассемблера сделать можно, но медленно. Перед сложением проверять, если оба числа больше ULONG_MAX/2 (или одно больше, а другое равно) будет перенос. А вобще есть библиотека gmp (http://gmplib.org/) для C.
mikejones вне форума
 
Ответить с цитированием Вверх
Старый 08.10.2009, 16:58   #4
Cheburator
Новичок
 
Пол:Мужской
Регистрация: 23.10.2008
Сообщений: 4
Репутация: 0
По умолчанию Re: Расширение типа в C++

Ещё одна библиотека для работы с большими числами - NTL - www.shoup.net/ntl/
Cheburator вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
расширение*.dtc TOPGAN Скорая помощь 1 08.09.2009 14:01
Расширение .pwp Liatra Архив 3 18.11.2007 14:31
Расширение .iso subjekt Архив 11 17.04.2006 21:47
расширение Bin hanoy Архив 4 18.05.2005 01:56

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 14:42. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.04088 секунды с 11 запросами