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

Вниз

Перевод из десятичной системы в восмеричную.   Найти похожие ветки 

 
INTAARI   (2004-03-19 18:08) [0]

Добрый день!!!
Может кто знает имеется ли в дельфи стандартная функция перевода из десятичной системы в восмеричную  наоборот.


 
Digitman ©   (2004-03-19 18:13) [1]

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


 
INTAARI   (2004-03-19 18:19) [2]

В дельфе много простых функций, но мы же не пишем их аналог, а берем и исползуем, хотя замечание считаю корректным.


 
WebErr ©   (2004-03-19 18:22) [3]


> Добрый день!!!
> Может кто знает имеется ли в дельфи стандартная функция
> перевода из десятичной системы в восмеричную  наоборот.

Нет такой функции! :)
Цикл, где поочерёдно берешь число по модулю 8 (mod 8 эквивалентно and 7 !!!), запоминаешь результат, само число делишь на 8 (div 8 то же что и shr 3) и на следующую итерацию... :))))


 
RomeoGolf   (2004-03-19 18:27) [4]


function OcttoLong(s1:String):word;
const
 OctChars : array[0..7] of Char ="01234567";
var
  N,Ls: word;
  s: string;
  Mn,R: word;
begin
S:=UpperCase(s1);
  Ls:=Length(s); R:=0; Mn:=1;
  for n:=1 to Ls Do
  begin
     if (s[Ls-N+1]>="a") and (s[Ls-N+1]>="z") Then
         s[Ls-N+1]:=Chr(ord(s[Ls-N+1])-32);
     R:=R+(Pos(s[Ls-N+1],OctChars)-1)*Mn;
     Mn:=Mn*8;
  end;
  OcttoLong:=R;
end;

Function WordtoOct(s1:word):String;
Var s2:word;
tmp: string;
begin
Tmp:="";
S2:=(((s1)shr 15)and 1);
tmp:=inttostr(s2);
s2:=(((s1)shr 12)and 7);
tmp:=tmp+inttostr(s2);
s2:=(((s1)shr 9)and 7);
tmp:=tmp+inttostr(s2);
s2:=(((s1)shr 6)and 7);
tmp:=tmp+inttostr(s2);
s2:=(((s1)shr 3)and 7);
tmp:=tmp+inttostr(s2);
s2:=(s1 and 7);
tmp:=tmp+inttostr(s2);
Wordtooct:=tmp;
End;


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


 
Юрий Зотов ©   (2004-03-19 18:43) [5]

Что-то типа этого.

function IntToOct(Int: Int64): string;
var
 i: integer;
begin
 Result := ""
 for i := 1 to 22 do
 begin
   Result := IntToStr(Int and 7) + Result;
   Int := Int shr 3
 end
end;

function OctToInt(Oct: string): Int64;
var
 i: integer;
begin
 Result := 0;
 for i := 1 to Length(Oct) do
   Result := Result * 8 + StrToInt(Oct[i])
end;


 
WebErr ©   (2004-03-19 18:52) [6]

Короче смотри [3] :))))



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

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

Наверх





Память: 0.46 MB
Время: 0.047 c
1-1082353543
Pirate
2004-04-19 09:45
2004.04.11
Алгоритм перестановки


1-1080274886
rosl
2004-03-26 07:21
2004.04.11
цикл в memo


4-1075989829
UNIVERSAL
2004-02-05 17:03
2004.04.11
Полупрозрачное окно


1-1082615490
Narayan
2004-04-22 10:31
2004.04.11
показ формы


6-1079072700
BaDeVlad
2004-03-12 09:25
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский