program BinToOct;
uses Crt;
var
BinaryString, OctalString, TriadString: string;
TriadNumber: integer;
i, j: integer;
Code: integer;
begin
ClrScr;
WriteLn('Enter the number in binary notation: ');
ReadLn(BinaryString);
i := Length(BinaryString);
OctalString := '';
repeat
TriadString := '';
if i <= 3 then
begin
TriadString := Copy(BinaryString, 1, i);
for j := 1 to 3-i do Insert('0', TriadString, 1);
end else
TriadString := Copy(BinaryString, i-2, 3);
i := i-3;
Val(TriadString, TriadNumber, Code);
case TriadNumber of
0: OctalString := '0' + OctalString;
1: OctalString := '1' + OctalString;
10: OctalString := '2' + OctalString;
11: OctalString := '3' + OctalString;
100: OctalString := '4' + OctalString;
101: OctalString := '5' + OctalString;
110: OctalString := '6' + OctalString;
111: OctalString := '7' + OctalString;
end;
until i <= 0;
WriteLn(BinaryString, '(2) = ', OctalString, '(8)');
ReadLn;
end.
нужна п/п переводящая числа из 2сс в 8сс
уже отчаялся искать где-то в сети, надеюсь найти помощи у вас!
в общем, суть такова:
п\п должна переводить ряд чисел(двоичных), разбивая их на триады
и переводя отдельную триаду в 8ичное число с помощью банального подставления результатов из таблицы (000-0,001-1 ... 111-7), если в триаде чисел <3 доставить недостающие нулями (я так понял с помощью insert('0',s,1) s-есть наш ряд чисел)
ряд чисел должен быть представлен string, а перед сравнением каждая триада переведена в integer.
и всё вроде бы просто, но для меня это сродни знакомства с интернетом для 100-летней бабульки.(а я как вы уже поняли, не в зуб ногой! :D)
п.с.: надеюсь на минимум троллей на вашем чудном форуме
п.п.с.: если есть какой-нибудь материал по данному вопросу(предельно понятный новичку), с радостью изучу всё сам))
п.п.п.с: если я недописал что-то важное, допишу обязательно, только скажите что (и желательно по-русски - в сленге я не силён совсем)
огромное человеческое "Спасибо!" всем кто отнесётся к теме, не как к свежей еде(привет, тролли!:D)
Да! ДА!! Это как раз то что я искал!!!))) Баааааальшущееее спасибо!!)))