Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-46097
AL2002
2002-10-24 15:30
2002.11.14
Я тут узнал.


6-46028
pfar
2002-09-12 15:03
2002.11.14
Сетевое окружения


3-45779
Beglec
2002-10-25 21:42
2002.11.14
Нужен, короткий, но полный справочник по SQL, для TQuery


3-45692
Cossys
2002-10-17 16:11
2002.11.14
TTable.Locate по двум полям???


1-45928
Кен
2002-11-01 07:58
2002.11.14
А нет ли какой нибудь программы для перевода паскаля в ассемблер?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский