
15.05.2009, 20:28
|
|
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
блин, тут на 5-10 минут дел, могбы и сам сделать. алгоримты простые. достаточно было просто подумать как это сделать
Код:
#include "stdafx.h"
typedef unsigned long ULONG;
ULONG OCT2DEC(ULONG i)
{
ULONG d=0;
ULONG x=1;
while (i)
{
d+=(i%10)*x;
x*=8;
i=i/10;
}
return d;
}
void OCT2HEX(ULONG i,char * outhex)
{
ULONG x,y;
char mas[17]="0123456789ABCDEF";
i=OCT2DEC(i);
x=i;
y=0;
while (i) // ýòî ìû âû÷èñëèì äëèííó ïîëó÷àåìîé ñòðîêè
{
y++;
i=i/16;
}
i=x;
outhex[y]=0x00;
while (i) // ýòî ìû âû÷èñëèì äëèííó ïîëó÷àåìîé ñòðîêè
{
outhex[--y]=mas[i%16];
i=i/16;
}
return;
}
void OCT2BIN(ULONG i,char * outhex)
{
ULONG x,y;
i=OCT2DEC(i);
x=i;
y=0;
while (i) // ýòî ìû âû÷èñëèì äëèííó ïîëó÷àåìîé ñòðîêè
{
y++;
i=i/2;
}
i=x;
outhex[y]=0x00;
while (i)
{
if (i%2) outhex[--y]='1'; else outhex[--y]='0';
i=i/2;
}
return;
}
int main(int argc, char* argv[])
{
ULONG ret;
char buf[128];
ret=OCT2DEC(42657);
printf("OCT 2 DEC = %i\n",ret);
OCT2HEX(42657,buf);
printf("OCT 2 HEX = %s\n",buf);
OCT2BIN(42657,buf);
printf("OCT 2 BIN = %s\n",buf);
return 0;
}
|
|
|