static string decantjetobin(int antje) { /*if (antje == 0) return "0"; */ //косметический 0 перед запятой если целая часть равна 0 string bin = "";
while (antje ! = 0) { bin = (antje % 2).tostring() + bin; antje /= 2; } return bin; }
static string decmanttobin(float mant, int precision) { /*if (mant == 0) return "0"; */ //косметический 0 после запятой если дробная часть равна 0 string bin = ""; while (mant ! = 0 & & bin.length < = precision) { mant *= 2; bin += ((int)mant).tostring(); mant -= (int)mant; } return bin; }
static string dectobin(float dec, int precision) { int antje = (int)dec; float mant = dec - antje; return decantjetobin(antje) + "," + decmanttobin(mant, precision); }
static string dectobin(int dec) { return decantjetobin(dec); }
static float pow(int a, int x) { float result = 1; if (x > 0) for (int i = 0; i < x; i++) result *= a; else for (int i = x; i < 0; i++) result /= a; return result; }
static float binmanttodec(string mant) { float decmant = 0; for (int i = 0; i < mant.length; i++) if (mant[i] == '1') decmant += pow(2, -(i + 1)); return decmant; }
static float binantjetodec(string antje) { float decantje = 0; for (int i = 0; i < antje.length; i++) if (antje[i] == '1') decantje += pow(2, antje.length - i - 1); return decantje; }
static float bintodec(string bin) { int indexsep = bin.indexof(',');
if (indexsep == -1) return binantjetodec(bin);
string binant = bin.substring(0, indexsep); string binmant = bin.substring(indexsep + 1);
return binantjetodec(binant) + binmanttodec(binmant); }
Поделитесь своими знаниями, ответьте на вопрос:
~какую операцию нельзя применить к каталогу:
vara,b,c,i,n,p,s: integer; x: real; p1,g: string; beginwriteln('vvedite chislo'); readln(a); writeln('is kakoi perevodim? '); readln(b); if b=10 then beginwriteln('v kakoi perevodim? '); readln(c); end; n: =0; p: =0;
if b< > 10 then begin 'is 10 v lubuyu sistemurepeatx: =exp(ln(b)*n); s: =round(x); p: =p + (a mod 10)*s; a: = a div 10; n: =n+1; until a=0; end
else begin
repeat 'is luboi sistemi v 10g: =inttostr(a mod c); p1: =p1 + g; a: =a div c; until a< c; p1: =p1+inttostr(a); end;
if p=0 then begin 'vivodfor i: =1 to length(p1) dowrite(p1[length(p1)-i+1]); endelsewrite(p); end.