Перейти на 'Главную страницу' Доска объявлений
  Харьков Форум > Hi-Tech... > Железо

Старый 25.07.2005, 15:44   #1
qZ (not logged in)
Гость
 
Сообщений: n/a
Программеры! F1!

вообщем си билдер. нужно очччень большое положительно целое число. ансигнед лонг инта не хватает! что делать?


  Ответить с цитированием   Вверх
Старый 25.07.2005, 15:50   #2
Arty
  

 
 
Регистрация: 12.08.2004
Адрес: Комитет ЭУ
Сообщений: 7,154
класс свой создать?...


__________________
Дадим отпор врагам мирового империализма!
Arty вне форума   Ответить с цитированием   Вверх
Старый 25.07.2005, 15:55   #3
qZ
Неактивен

 
 
Регистрация: 1.09.2003
Сообщений: 1,025
 
Цитата:
Сообщение от Arty
класс свой создать?...
нах?


qZ вне форума   Ответить с цитированием   Вверх
Старый 25.07.2005, 16:35   #4
CryBaby
Неактивен

 
 
Регистрация: 23.01.2004
Сообщений: 4,275
 
Застрелицца, однозначно!
Ну или взять много чисел чуть поменьше

Объясни что именно тебе нужно сделать-- там будет проще тебе помочь


CryBaby вне форума   Ответить с цитированием   Вверх
Старый 25.07.2005, 16:55   #5
qZ
Неактивен

 
 
Регистрация: 1.09.2003
Сообщений: 1,025
 
Цитата:
Сообщение от CryBaby
Объясни что именно тебе нужно сделать-- там будет проще тебе помочь
есть текстовый файл. структура типа такой:
показатель=сумма
показатель=сумма
показатель=сумма

так вот надо если показатели однаковые объединить их. те. я беру то что после знака равенства и до конца строки преобразую в целое. потом со вторым тоже самое. суммы суммирую (тупо звучит как то) и обратно преобразовав в строку леплю после равенства. а вторую строку удаляю. но суммы очччень большие!


qZ вне форума   Ответить с цитированием   Вверх
Старый 25.07.2005, 17:23   #6
Drema
Неактивен

 
 
Регистрация: 6.09.2003
Адрес: Kharkov
Сообщений: 5,438
 
а нельзя ли это сделать как то "посимвольно". как будто сложить в столбик?
тебе тогда хватит типа byte и string


Drema вне форума   Ответить с цитированием   Вверх
Старый 25.07.2005, 17:29   #7
CryBaby
Неактивен

 
 
Регистрация: 23.01.2004
Сообщений: 4,275
 
Дрема говрит реально. Нужно бы тут поработать с разрядами.
"мне эта идея пришла в голову чуточку раньше" (с)
и разбивать эти большие числа на 2 поменьше и с ними уже работать

например
показатель= 1012312
показатель= 2342314

Интерпретируем как "1012 " и "312"
"2342" и "314"

Обрабатываем а результат уже в виде строки объединяем в одну результирующую строку.

П.С. не забывай про переносы знаков и прочую мелочь.


Если че- я еще 40 минут буду в АСЕ


CryBaby вне форума   Ответить с цитированием   Вверх
Старый 25.07.2005, 22:40   #8
Drema
Неактивен

 
 
Регистрация: 6.09.2003
Адрес: Kharkov
Сообщений: 5,438
 
написали?
вот моя реализация на дельфи:
Код:
procedure TForm1.Button1Click(Sender: TObject);
type
  num=record
  s:string;
  l:integer;
end;
function rever(s:string):string;
var
i:integer;
s1:string;
begin
  s1:='';
  for i:=0 to length(s)-1 do
    s1:=s1+s[length(s)-i];
  rever:=s1;
end;
var
  a1, a2, b:num;
  i,j, buf, max, sum:integer;
  c1,c2:char;
begin
  a1.s:=edit1.Text;
  a2.s:=edit2.Text;
  a1.l:=length(a1.s);
  a2.l:=length(a2.s);
  b.s:='';
  if a1.l>a2.l then max:=a1.l else max:=a2.l;
  buf:=0;
  for i:=0 to max-1 do
    begin
      if a1.l<=i then c1:='0' else c1:=a1.s[a1.l-i];
      if a2.l<=i then c2:='0' else c2:=a2.s[a2.l-i];
      sum:=strtoint(c1)+strtoint(c2)+buf;
      if sum>9 then
        begin
          buf:=1;
          sum:=sum-10;
        end
      else
        buf:=0;
      b.s:=b.s+inttostr(sum);
    end;
    if buf=1 then b.s:=b.s+'1';
  edit3.Text:=rever(b.s);
end;
в edit3 появляется результат сложения содержимого edit1 и edit2.
умея складывать 2 числа можно складывать сколько угодно чисел.
вроде работает..


Drema вне форума   Ответить с цитированием   Вверх
Старый 26.07.2005, 07:43   #9
_Roman_
  

 
 
Регистрация: 5.05.2005
Адрес: Харьков
Сообщений: 1,273
 
Цитата:
Сообщение от qZ (not logged in)
вообщем си билдер. нужно очччень большое положительно целое число. ансигнед лонг инта не хватает! что делать?
Зачем изобретать велосипед?
Воспользуйтесь например LARGE_INTEGER.


_Roman_ вне форума   Ответить с цитированием   Вверх
Старый 26.07.2005, 08:09   #10
Unregistered
Гость
 
Сообщений: n/a
Цитата:
Сообщение от CryBaby
например
показатель= 1012312
показатель= 2342314
а если так:
показатель= 1012235628307312
показатель= 2

????


  Ответить с цитированием   Вверх
Старый 26.07.2005, 09:59   #11
CryBaby
Неактивен

 
 
Регистрация: 23.01.2004
Сообщений: 4,275
 
Цитата:
а если так:
показатель= 1012235628307312
показатель= 2

????
Я признаться не рассчитывал на таких ламеров.

Можно же считать пустые разряды за нули при обработке, неправда ли?

от уже ...


CryBaby вне форума   Ответить с цитированием   Вверх
Старый 26.07.2005, 10:20   #12
qZ
Неактивен

 
 
Регистрация: 1.09.2003
Сообщений: 1,025
 
Цитата:
Сообщение от CryBaby
Я признаться не рассчитывал на таких ламеров.

Можно же считать пустые разряды за нули при обработке, неправда ли?

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


qZ вне форума   Ответить с цитированием   Вверх
Старый 26.07.2005, 22:55   #13
Arty
  

 
 
Регистрация: 12.08.2004
Адрес: Комитет ЭУ
Сообщений: 7,154
Цитата:
Сообщение от qZ
нах?
шоб було.

выше показали


__________________
Дадим отпор врагам мирового империализма!

Последний раз редактировалось Arty; 26.07.2005 в 22:57.
Arty вне форума   Ответить с цитированием   Вверх
Старый 30.07.2005, 11:08   #14
SAHbKA
  

 
 
Регистрация: 21.07.2005
Адрес: Терра-третья Планета от С
Сообщений: 5,710
 
Люди, а ни у кого нет сингулярного разложения матрицы в Делфях? А то скоро надо будет заниматься...


__________________
....ɐwʎ ɔ vǝmоɔ dиw
SAHbKA вне форума   Ответить с цитированием   Вверх
Старый 31.07.2005, 01:25   #15
esh_p
Неактивен
 
Регистрация: 15.07.2005
Сообщений: 390
>> Воспользуйтесь например LARGE_INTEGER.
Ему вроде знак не нужен, тогда прямая дорога к unsigned __int64, или тоже мало?
Можно еще с long double, там уже НАМНОГО большие числа, правда точность очень маленькая, но зато можно свободно использовать числа с сотнями нулей


esh_p вне форума   Ответить с цитированием   Вверх

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Харьков Форум > Hi-Tech... > Железо

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


Часовой пояс GMT +2, время: 03:38.


RSS 0.91
RSS 2.0
Харьков Форум Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Google Analytics