Показать сообщение отдельно

  #2  
Старый 15.05.2009, 20:28
slesh
Reservists Of Antichat - Level 6
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме:
3288241

Репутация: 3349


Отправить сообщение для slesh с помощью ICQ
По умолчанию

блин, тут на 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;
}
 
Ответить с цитированием