Привет!
Решил написать программу для перевода десятичных чисел в другие ССч (Системы Счисления).
Программа поддерживает перевод в системы с основаниями от 2 до 9, а также перевод в шестнадцатиричную ССч.
На мой взгляд, одна из самых полезных программ.
Язык программирования: Паскаль
Программа: Алго, интерпретатор Pascal
Код
program bb;
var
tip,I:integer;
A:array [0..50] of integer;
x:real;
label 10;
{Автор: Fess}
{Сайт fess-style.ucoz.ru}
begin
I:=0;
writeln('Программа перевода чисел v0.1 by Fess');
writeln('');
writeln('Выберите тип перевода :');
writeln('');
writeln('2: Десятичное -> двоичное');
writeln('3: Десятичное -> третичное');
writeln('4: Десятичное -> четвертичное');
writeln('5: Десятичное -> пятиричное');
writeln('6: Десятичное -> шестиричное');
writeln('7: Десятичное -> семеричное');
writeln('8: Десятичное -> восьмеричное');
writeln('9: Десятичное -> девятеричное');
writeln('16: Десятичное -> шестнадцатиричное');
writeln('');
10:read(tip);
if ((tip<2)OR((tip>9)AND(tip<>16))) then
begin writeln('Неверное основание. Попробуй снова'); goto 10; end;
writeln('Введите целое дес. число для перевода...');
readln(x);
write (x:0:0, ' -> ');
{Перевод в системы с основаниями 2-9}
if (tip>=2)AND(tip<=9) then
begin
while x >= 1 do
begin
I:=I+1;
A[I]:=trunc(x) mod tip;
x:=x/tip;
end;
for I:=I downto 1 do write (A[I]);
end;
{Шестнадцатиричный перевод}
if tip = 16 then
begin
while x >= 1 do
begin
I:=I+1;
A[I]:=trunc(x) mod 16;
x:=x/tip;
end;
for I:=I downto 1 do
begin
if A[I] = 10 then write ('A')
else
if A[I] = 11 then write ('B')
else
if A[I] = 12 then write ('C')
else
if A[I] = 13 then write ('D')
else
if A[I] = 14 then write ('E')
else
if A[I] = 15 then write ('F')
else write (A[I]);
end;
end;
end.