Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   C++ Builder (https://www.clubdelphi.com/foros/forumdisplay.php?f=13)
-   -   decimal a binario (https://www.clubdelphi.com/foros/showthread.php?t=76916)

luisito2011 04-12-2011 19:32:20

decimal a binario
 
hola a todos...
me podrian ayudar.. oh guiar de como puedo hacer
una funcion que me convierta un numero decimal.. a binario
---
yo ya lo tengo pero mi funcion tiene error...

cuando le envio el numero 2
tendria que mostrarme 10.. pero solo me muestra 1..
intente hacerle con un vector.. pero despuej me acorde..
que una funcion no devuelve un vector..

Código Delphi [-]
int binario(int Numero)
{
int bin,inv,dig;
bin=0; inv=0;
while (Numero>0)
{
    dig=Numero%2;
    if (dig == 0)
        bin=bin*10;
    else
        bin=(bin*10)+dig;
    Numero=Numero/2;
}
while (bin>0)
{
    dig=bin%10;
    inv=(inv*10)+dig;
    bin=bin/10;
}
return inv;
}

esa es mi funcion aun q es un poco simple..
---thanks,...

ecfisa 04-12-2011 21:25:17

Hola.

Código:

char* IntToBin(long int Valor, short Digitos)
{
char *s = "";
  for(int i=0; i < Digitos; i++) *(s+i) = '0';
  *(s+Digitos) = '\0';
  do {
    if(Valor & 1) *(s+Digitos-1) = '1';
    Digitos--;
    Valor >>= 1;
  } while(Valor);
  return s;
}

Ejemplo de llamada:
Código:

void __fastcall TForm1::btConvertirClick(TObject *Sender)
{
char *s = IntToBin(65521,16);
  ShowMessage(s);
}

Saludos.

ecfisa 05-12-2011 04:43:08

Hola.

La función anterior te funcionará tanto en C como en C++, pero ahora pienso que es muy probable que estás usando Builder C++...

Si es asi. podés hacer:
Código:

AnsiString IntToBin(unsigned Valor, unsigned int Digitos)
{
AnsiString s;
  s.StringOfChar('0',Digitos);
  s.SetLength(Digitos);
  for(; Valor; Digitos--,Valor >>= 1)
    if(Valor & 1) s[Digitos] = '1';
  return s;
}

Saludos.


La franja horaria es GMT +2. Ahora son las 07:59:35.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi