Текущий архив: 2005.02.20;
Скачать: CL | DM;
ВнизПеревод числа Найти похожие ветки
← →
ToMXz (2005-01-31 21:28) [0]Скажите пожалуйста как перевести целое число в шестеричную систему счисления (от 1 до 6)
Например:
2 – 2 = 6
2 + 5 = 1
1 - 4 = 3
← →
ninja © (2005-01-31 21:41) [1]ИМХО, 2-2=0 в любой системе :)
← →
ToMXz (2005-01-31 22:09) [2]Счет начинается с "1"
← →
ninja © (2005-01-31 22:17) [3]
> ToMXz (31.01.05 22:09) [2]
> Счет начинается с "1"
тогда это какая-то очень странная система счисления (по-любому не 6-ричная :)
← →
default © (2005-01-31 22:39) [4]2 – 2 = 6
поверь, даже индейцы такое бы не написали
← →
default © (2005-01-31 22:41) [5]при условии что 6 это не обозначение "ничего"
← →
Gero © (2005-01-31 22:49) [6]http://algolist.manual.ru/maths/teornum/count_sys.php#examp
← →
default © (2005-01-31 22:51) [7]Gero © (31.01.05 22:49) [6]
такой с/с там точно нет
← →
ninja © (2005-01-31 23:31) [8]орех вообще
← →
GrayFace © (2005-02-01 02:49) [9]ToMXz (31.01.05 21:28)
m:=n mod 6;
if m<=0 then inc(m,6);
Где n - это 2-2, 2+5, 1-4 и т.д. Только это не система счисления. Как мне помнится, это "кольцо вычетов по модулю 6" с 6 вместо нуля.
← →
VsInLg (2005-02-01 10:17) [10]Alphabet:array of Char;
в твоем случае Alphabet=("0","1","2","3","4","5");
function IntToPass(Int:Int64):string; // Быстрая
var
i,j,dived,moded,k,AlphLen:integer;
tmp:Int64;
begin
AlphLen:=Length(Alphabet);
tmp:=Int div AlphLen;
i:=1;
while tmp<>0 do
begin
tmp:=tmp div AlphLen;
Inc(i);
end;
k:=i;
SetLength(Result,i);
tmp:=Int;
for j:=1 to i do
begin
moded:=tmp mod AlphLen;
dived:=tmp div AlphLen;
Result[k]:=Alphabet[moded];
Dec(k);
tmp:=dived;
end;
end;
function IntToPassA(Int:Int64):string; // медленная
var
Ind:integer;
dived,moded:integer;
PassLen,AlphLen:integer;
Password:string;
begin
AlphLen:=Length(Alphabet);
PassLen:=0;
while Int<>0 do
begin
moded:=Int mod AlphLen;
dived:=Int div AlphLen;
Inc(PassLen);
SetLength(Password,PassLen);
Password[PassLen]:=Alphabet[moded];
Int:=dived;
end;
SetLength(Result,PassLen);
for Ind:=1 to PassLen do
Result[Ind]:=Password[PassLen-Ind+1];
end;
← →
ToMXz (2005-02-01 13:01) [11]Спасибо за помощь!
На счет системы счисления я наверное погорячился. Просто это нужно для корректировки вычислений.
← →
msguns © (2005-02-01 13:47) [12]А почему "6" ? На дьявола работаешь ?
← →
Alx2 © (2005-02-01 14:03) [13]>msguns © (01.02.05 13:47) [12]
Уже и "6" опаскудили? :)
← →
pasha_golub © (2005-02-01 14:40) [14]GrayFace © (01.02.05 02:49) [9]
Совершенно верно, но у этой штуки есть специальное название "чего-то там минимальное что-то по модулю 6"
← →
Хруст © (2005-02-01 15:47) [15]
const
n=6;//основание системы счисления
var i: Word;//10-тичная запись числа
k: Word;
s: String;//запись числа в нужной системе счисления
begin
s := "";
while i > n do
begin
k := i MOD n;
s := IntToStr(k) + s;
i := i - n*k;
end;
s := IntToStr(i) + s;
end;
Примерно так
← →
GrayFace © (2005-02-01 17:55) [16]Хруст © (01.02.05 15:47) [15]
i=2*n => бесконечный цикл.
2*n, 3*n, ... - тоже
← →
Prohodil Mimo © (2005-02-01 18:09) [17]Вроде бы прокатывало такое:
Type
Zz=1..6;
Var
Ss:Zz;
← →
Hypercube (2005-02-01 19:16) [18]Ты навервно перепутал шестиричную с шестнадцатиричной (hexdecimal).
Страницы: 1 вся ветка
Текущий архив: 2005.02.20;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.035 c