Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
ВнизКак преобразовать десятичные в двоичные и наоборот Найти похожие ветки
← →
Axill (2002-11-02 15:09) [0]Как преобразовать десятичные в двоичные и наоборот
← →
Poirot (2002-11-02 16:29) [1]Да вам батенька надо лит-ру почитать там много такого...
Самый простой это 10->2 деленее на 2 и сбор массива с конца
а для 2->10 с младшего разряда суммируешь домнажая каждое слагаемое на 2 в степени номер разряда. разряды считать с 0.
Подробнее помоему некуда...
← →
Malder (2002-11-02 17:06) [2]Poirot, объяснил как на..ал, извиняюсь.
Подробнее есть куда: http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1035226023&n=3
← →
()utLaw (2002-11-02 19:39) [3]Вот то, что я когда-то писал... Перевод из любой в любую (но через 10-ную)!!!
{Перевод из системы счисления в другие}
program system_1;
uses crt;
function f1(c:char):integer;
begin
if c>"9" then f1:=ord(c)-55
else f1:=ord(c)-48;
end;
function ten(a:string;n:integer):real;
var
i,p:integer;
c,b:real;
begin
p:=pos(".",a);
b:=0;
for i:= 1 to p-1 do
b:=b*n+f1(a[i]);
c:=0;
for i:=length(a) downto p+1 do
c:=(c+f1(a[i]))/n;
ten:=b+c;
end;
function f2(b:integer):char;
begin
if b>9 then f2:=chr(b+55)
else f2:=chr(b+48);
end;
function sys(a:real;n:integer):string;
var
b,i:integer;
c:real;
s:string;
begin
b:=round(int(a));
c:=frac(a);
s:="";
while b<>0 do
begin
s:=f2(b mod n)+s;
b:=b div n;
end;
s:=s+".";
for i:=1 to 12 do
begin
c:=c*n;
s:=s+f2(round(int(c)));
c:=frac(c);
end;
sys:=s;
end;
begin
clrscr;
writeln("Число в 2-ичной системе : ",sys(16384.625,2));
writeln("Число в 8-ичной системе : ",sys(16384.625,8));
writeln("Число в 16-ичной системе : ",sys(16384.625,16));
readln;
end.
Кинь на мыло, как понравилось!!!
← →
kolega (2002-11-02 22:22) [4]например10 в двоичный. Просто делишь на два.10/2=5 остаток 0, потом 5/2=2 остаток1, потом2/2=1 остаток 0.
10 в двоичном =0101 Сначала пишешь остатки от деления слева напрво, затем рез-т последнего деления. А в ячейках запишется наоборот справа налево: |1|0|1|0|
← →
()utLaw (2002-11-03 00:14) [5]2 kolega
Интересно, а в моем коде не это реализовано?
← →
TTCustomDelphiMaster (2002-11-03 00:37) [6]Ученик © (17.09.02 22:37)
function UniConvert(L, Base : Integer; Chars : PChar) : string;
begin
Result := "";
if StrLen(Chars) >= Base then begin
repeat
Result := (Chars + (L mod Base))^ + Result;
L := L div Base
until L = 0
end
end;
ShowMessage(UniConvert(534534, 2, "01"))
← →
()utLaw (2002-11-03 16:02) [7]2 TTCustomDelphiMaster
Да, да, да!!!
А теперь еще обратно перевести... И чуть выше глянуть, на то, что уже написано...
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2002.11.14;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c