Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.14;
Скачать: CL | DM;

Вниз

Как преобразовать десятичные в двоичные и наоборот   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.017 c
7-46179
comwad
2002-09-12 05:09
2002.11.14
Почему не работает Beep(800,100) под Win95?


7-46167
REA
2002-09-13 15:21
2002.11.14
Timer


1-45809
Lexa1900
2002-11-04 23:08
2002.11.14
Flash-прозрачность


14-46074
IronHawk
2002-10-10 23:02
2002.11.14
Мини - толковый словарь


1-45802
delphi4fun
2002-11-04 21:08
2002.11.14
вставить image в TreeView