Данный скрипт переводит числа с двоичной в десятичную систему счисления. Код тестовый! Пока использовать только для подсчетов. Сейчас стабильно работает с кодом длиной 31 символ: 1001010010100011110101011100101.
Например рассмотрим 1001011:
1*2
6+0*2
5+0*2
4+1*2
3+0*2
2+1*2
1+1*2
0=64+0+0+8+0+2+1=75
Такой же результат покажет и мой код:
64 1 64
32 0 64
16 0 64
8 1 72
4 0 72
2 1 74
1 1 75
main()
{
new m,
p,
bool:st,
k,
res,
string[50];
static sub[] = "1000101";
for(new i=0; i < sizeof(sub)-1; i++)
{
if(st == false)
{
k = sizeof(sub)-2;
st = true;
}
m = Power(2, k--);
if(sub[i] == '1')
{
res += m;
p = 1;
}
else if(sub[i] == '0')
{
res += 0;
p = 0;
}
format(string, sizeof string, "\t%d\t%d\t%d\n", m, p, res);
printf(string);
}
}
stock Power(a, n)
{
if(n!=0)
{
return a*Power(a, n-1);
}
return 1;
}