Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Раота с ограмадными числами.


Страницы:   1 2

markers ©   (2004-11-10 09:19:00) 

Народ подскажите плиз как раотать с числом в 12 знаков и более, Особенно важны такие вещи как, вычесть и одного большого числа другое, Поделить на Tb, Gb, Mb, Kb, b. (Кстати как лучше всего это сделать?), Что самое отвратительное эти два числа крупных с которыми мне нужно работать нахоятся в стринге, а как их сконвентировать в число, так как они такие крупные не знаю... Ведь у интегера есть ограничение....
Вообщем подскажите люди добрые!;) Заранее сенкью;)


Gloomer   (2004-11-10 13:03:00) [1]

Если нужны действительно большие числа, больше чем Int64,
послушай TUser ©   (10.11.04 11:03) [28]
и сходи http://algolist.manual.ru/maths/longnum.php


KSergey   (2004-11-10 11:23:00) [2]

> [25] begin...end ©   (10.11.04 10:15)
> Или перейти на какой-нибудь из real types...

А вот это судя по задаче не пойдет. Видимо там надо складывать большие числа с маленькими, и, боюсь, в случае real-типов лимит интернета у пользователей никогда не настанет... ;)


TUser   (2004-11-10 11:03:00) [3]

Самое правильное - сходить на алголист. Длинная арифметика - там очень популярная тема, и на форуме и статьи лежат хорошие


Думкин   (2004-11-10 10:25:00) [4]

9223372036854775807


markers   (2004-11-10 10:18:00) [5]

да врядли оно будет ольше этого, ну по крайней мере сильно больше
Спасибо


begin...end   (2004-11-10 10:15:00) [6]

markers ©   (10.11.04 10:09) [22]

> А какое там максимальное значение интегера?

Как верно заметил KilkennyCat ©   (10.11.04 9:56) [13], это значение для Int64 равно 2^63 - 1. Для Integer: 2147483647. А как верно заметил KSergey ©   (10.11.04 9:59) [16], лучше в чём-нибудь другом считать. Или перейти на какой-нибудь из real types...

---------------------
Sorry, I'm drunk now.


markers   (2004-11-10 10:15:00) [7]

Странно пять минут проверял не работало, сейчас проверил РАБОТАЕТ;) Ну наконец-то!;)
Остается только разобрать на байты килобайты магабайты и гигабайты
А какое максимальное число возможно при инт64?


markers   (2004-11-10 10:10:00) [8]

сейчас дебаг сделаю посмотрю


markers   (2004-11-10 10:09:00) [9]

жопа...... :( А какое там максимальное значение интегера? Такие числа редко будут встречатся, буду надеятся что не попадутся....


begin...end   (2004-11-10 10:08:00) [10]

markers ©   (10.11.04 9:47) [9]
Что-то я не пойму...

var
 I, J, K: Int64;
begin
 I := StrToInt64('250000000000000');
 J := StrToInt64('999999999999999');
 ShowMessage(IntToStr(J - I))
end

И у меня усё в порядке, никаких ошибок...


Реактор   (2004-11-10 10:06:00) [11]

У меня такая же проблема. Как я понял ничего не сделаешь. Надо свои процедуры писать и создавать новые типы. Это не сложная задача я такое уже делал для TP.
Хотя есть еще один выход. Я тут в инете нарыл калькулятор, который может обсчитывать числа до 200 знаков. Я попросил у хозяина исходник. Если даст, то ничего писать не надо. Просто адаптировать под себя и пользоваться.


markers   (2004-11-10 10:01:00) [12]

Подмогите, что сделать то..... :(


begin...end   (2004-11-10 10:00:00) [13]

KilkennyCat ©   (10.11.04 9:57) [14]

Да нет, это я ошибся, действительно не выходит...


KSergey   (2004-11-10 09:59:00) [14]

А может попробовать не в байтах считать? А в чем покрупнее?


KilkennyCat   (2004-11-10 09:59:00) [15]


> markers ©   (10.11.04 09:58) [15]


я понял... вначале не понял.


markers   (2004-11-10 09:58:00) [16]

KilkennyCat ©   (10.11.04 9:56) [13]
конвентирование в стирнг для вывода остатка трафика


KilkennyCat   (2004-11-10 09:57:00) [17]

простите, ошибся. пойду спать.


KilkennyCat   (2004-11-10 09:56:00) [18]

2^63-1 разве выходит?


> IntToStr(Ostatok)
 это что?


markers   (2004-11-10 09:56:00) [19]

Ну дык тогда сделать?


begin...end   (2004-11-10 09:54:00) [20]

markers ©   (10.11.04 9:47) [9]

> Матюгается что 250000000000000 неверное итегеровое
> значение....

Ну дык правильно, это выходит за пределы Int64.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо