[algo] konwersja systemow licz. (przeczytaj przed krytyka)

0

Problem polega na konwersji liczby dziesietnej/binarnej (takiej ktora mam w int) na inny system, jak wszyscy wiedza, mozna to zrobic dzielac modulo, potem odwracajac wynik itepe, tam zlozonosc jest jakos (3/4)n ALE podobno istnieje mniej zlozony sposob, slyszal ktos o czyms takim?

0

Wykorzystanie rekurencji dzięki czemu nie ma potrzeby "odwracania" otrzymanego wyniku i wszystko zajmuje kilka linijek (plus tablica znaków np. "0123456789ABCDEF" co daje możliwość konwersji liczby dziesiętnej na system od binarnego do heksadecymalnego).

0

I dodatkowo gotowa procedurka:


const
  tablica : array[0..15] of char = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F');

procedure DecToSys(liczba, system: integer; var Str: string);
var
  reszta : integer;
begin
  reszta := liczba mod system;
  liczba := liczba div system;
  if liczba <> 0 then
    DecToSys(liczba, system, Str);
  Str := Str + tablica[reszta];
end;

No i wywołanie:

  s := '';
  DecToSys(strtoint(edit1.text), 2, s); //zależnie od systemu (tu mamy 2 czyli binarny)
  label.Caption := s;

1 użytkowników online, w tym zalogowanych: 0, gości: 1