Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Вниз

переменная   Найти похожие ветки 

 
md   (2004-03-24 22:45) [0]

можно ли создать свою переменную - например integer который бы занимал более 4 байтов


 
panov ©   (2004-03-24 22:47) [1]

Можно, но не integer, а, например, LongInt


 
TButton ©   (2004-03-24 22:47) [2]

нет, но есть готовый int64(8b)


 
YurikGl ©   (2004-03-24 22:48) [3]

Может ему 5 байт надо :)


 
TButton ©   (2004-03-24 22:48) [4]

longint занимает ровно 4 байта =) или я что-то перепутал?


 
TButton ©   (2004-03-24 22:50) [5]

5.2
тока я задумался над вопросом. ему тип нужен или переменная в смысле var? об этом я сразу не подумал, потому что вообще не подумал что на форуме станут спрашивать, можно ли создать переменную... и потом в вопросе сказано "...integer который бы занимал более 4 байтов", что наводит на ассоциации с типом...


 
md   (2004-03-24 22:55) [6]

мне нужно записать число с разрядностью 100


 
YurikGl ©   (2004-03-24 22:55) [7]

re [6] в какой системе? Двоичной?


 
TButton ©   (2004-03-24 22:57) [8]

100 цифр в значащей части. используй строки :) напиши функцию для сложения двух чисел столбиком (не забыл как это делается :), числа у тебя целые, проблем не будет.


 
YurikGl ©   (2004-03-24 22:58) [9]

Можешь исполззовать любой из

Fundamental real types
Type Range Significant digits Size in bytes
Real48 2.9 x 10^-39 .. 1.7 x 10^38 11-12 6
Single 1.5 x 10^-45 .. 3.4 x 10^38 7-8 4
Double 5.0 x 10^-324 .. 1.7 x 10^308 15-16 8
Extended 3.6 x 10^-4951 .. 1.1 x 10^4932 19-20 10
Comp -2^63+1 .. 2^63 -1 19-20 8
Currency -922337203685477.5808.. 922337203685477.5807 19-20 8

Правда точность страдает


 
YurikGl ©   (2004-03-24 22:59) [10]

re [8] Проще уж сделать массив int-ов64 и его обрабатывать :)


 
TButton ©   (2004-03-24 22:59) [11]

тока перемножать эти числа не вздумай :) хотя... вздумай :)


 
panov ©   (2004-03-24 23:01) [12]

Сорри, за постинг [1] - заработался.


 
YurikGl ©   (2004-03-24 23:02) [13]

re [11] shl и shr можно пользовать :)


 
md   (2004-03-24 23:03) [14]

мне нужно разделить два таких числа (по 100 цифр кадый) незнаю как реализовать деление если они записаны как строки.


 
YurikGl ©   (2004-03-24 23:04) [15]

re [14] Дели столбиком :)


 
md   (2004-03-24 23:06) [16]

ку 14
если делить я могу делить по частям то делимое как-то неполучается


 
panov ©   (2004-03-24 23:08) [17]

Не надо делитель делить. Его-то как раз надо целиком использовать для деления.


 
YurikGl ©   (2004-03-24 23:08) [18]

Один из путей. Берешь книжку, где описано как выполняет деление микропроцессор и повторяешь описанный алгоритм для чисел большей разрядности.


 
TButton ©   (2004-03-24 23:18) [19]

ку (10)
и чем это проще? проще чем две строки с конца до начала прогнать, генеря по пути 3ю?
см. код


function summ(a, b: string): string;
var
 i, l: integer;
 _a, _b, _c, m: integer;
 c: string;
begin
 c:="";  // результат. пока пустой
 m:=0;   // память
 l:=ABS(length(a)-length(b));
 if l>0 then  //если строки разной длины
 for i:=1 to l do  // уравниваем приписывая к короткой нули
   if length(a)<length(b)
     then a:="0"+a
     else if length(b)<length(a)
       then b:="0"+b;
 l:=length(a);  // берем длину строки
 for i:=l downto 1 do
 begin
   _a:=StrToIntDef(a[i],0);  // цифра 1
   _b:=StrToIntDef(b[i],0);  // цифра 2
   if _a+_b+m>10             // если в сумме (с памятью) больше 10
   then
     begin
       _c:=(_a+_b+m) mod 10; //взяли все что меньше 10
       m:=((_a+_b+m)-_c) div 10; // остальное - в уме (div 10 бо для след. разряда)
     end
   else
     begin
       _c:=_a+_b+m;          // если не больше 10 - просто суммируем
       m:=0;                 // и забываем
     end;
   c:=intToStr(_c)+c;        // приписываем новую цифру в начало строки
 end;  
 if m>0 then c:=c+intToStr(m); // если по концове что-то осталось - тоже приписываем
 result:=c;                  // возвращаем результат
end;


 
TButton ©   (2004-03-24 23:19) [20]

ой. че-т я долго код мастрячил...
ну можно и деление замутить, кстати мне кто-то такой вопрос уже задавал... что-то с курсовым связано...



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.04.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.037 c
4-1079340672
BillyJeans
2004-03-15 11:51
2004.04.11
Как разместить Bitmap на форме API шными функциями?


7-1079948445
Sergvc
2004-03-22 12:40
2004.04.11
Сервис и ADO


3-1081937395
Vitaliy
2004-04-14 14:09
2004.04.11
Создание dbf таблицы через ADO


3-1079530237
Layner
2004-03-17 16:30
2004.04.11
Как запретить удалить запись с опред ID (Значением поля)?


6-1075797259
kkostik
2004-02-03 11:34
2004.04.11
иня домена





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский