Змінюй хід війни! Допомагай ЗСУ!

Программеры! F1!

🔴 15:10 Повітряна тривога в Харків.обл.
  • Автор теми qZ (not logged in)
  • Дата створення

qZ (not logged in)

Q
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #1
Программеры! F1!

вообщем си билдер. нужно очччень большое положительно целое число. ансигнед лонг инта не хватает! что делать?
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #2
класс свой создать?...
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #4
Застрелицца, однозначно!
Ну или взять много чисел чуть поменьше :)

Объясни что именно тебе нужно сделать-- там будет проще тебе помочь
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #5
CryBaby сказав(ла):
Объясни что именно тебе нужно сделать-- там будет проще тебе помочь

есть текстовый файл. структура типа такой:
показатель=сумма
показатель=сумма
показатель=сумма

так вот надо если показатели однаковые объединить их. те. я беру то что после знака равенства и до конца строки преобразую в целое. потом со вторым тоже самое. суммы суммирую (тупо звучит как то) и обратно преобразовав в строку леплю после равенства. а вторую строку удаляю. но суммы очччень большие!
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #6
а нельзя ли это сделать как то "посимвольно". как будто сложить в столбик?
тебе тогда хватит типа byte и string
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #7
Дрема говрит реально. Нужно бы тут поработать с разрядами.
"мне эта идея пришла в голову чуточку раньше" (с) :)
и разбивать эти большие числа на 2 поменьше и с ними уже работать

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

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

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

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


Если че- я еще 40 минут буду в АСЕ
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #8
написали?
вот моя реализация на дельфи:
Код:
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 числа можно складывать сколько угодно чисел.
вроде работает..
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #9
qZ (not logged in) сказав(ла):
вообщем си билдер. нужно очччень большое положительно целое число. ансигнед лонг инта не хватает! что делать?
Зачем изобретать велосипед?
Воспользуйтесь например LARGE_INTEGER.
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #10
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #11
а если так:
показатель= 1012235628307312
показатель= 2

????

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

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

от уже ... :ламер:
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #12
CryBaby сказав(ла):
Я признаться не рассчитывал на таких ламеров.

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

от уже ... :ламер:

ты меня не понял... ну правда наверное просто я изначально этого не сказал... я ж спросил мож какой еще тип есть... а заморачиватса с обработкой и посимвольным сложением мне влом... и так работает.. а кому сильно надо файлик ручками подправит... и так людям офигительно работу облегчил...
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #14
Люди, а ни у кого нет сингулярного разложения матрицы в Делфях? А то скоро надо будет заниматься...
 
  • 🔴 15:10 Повітряна тривога в Харків.обл.
  • #15
>> Воспользуйтесь например LARGE_INTEGER.
Ему вроде знак не нужен, тогда прямая дорога к unsigned __int64, или тоже мало?
Можно еще с long double, там уже НАМНОГО большие числа, правда точность очень маленькая, но зато можно свободно использовать числа с сотнями нулей :)
 
Назад
Зверху Знизу