decimal a binario con bitset

Iniciado por jorgediazbass, 29 Julio 2016, 07:44 AM

0 Miembros y 1 Visitante están viendo este tema.

jorgediazbass

me encontraba viendo que existen métodos de convertir de decimal a binario mediante recursividad y otros, pero revisando tanto las librerías pensé que debería existir algo que trabajara a bajo nivel y conseguí la librería bitset, tiene una serie de métodos interesantes y que resultaran muy útiles, este code es solo un ejemplo básico, se que podría adaptar para poder manejar double.

/*
Name: decimal a binario menores o iguales a 32bits
Copyright: jorge diaz
Author: jorge diaz
Date: 29/07/16 01:20
Description: se puede mejorar, por ahora solo pruebo los recursos de la librería
*/

#include <bitset>
int main()
{
std::bitset <0x20> _;
scanf("%d",&_);
std::string __ = _.to_string();
const char *p=__.c_str();
for(register short _=0x0;_<=0x20;_++)
{
if(_%0x4==0x0)
{
printf(" ");
}
printf("%c",*p);
*p++;
}
return 0;
}

AlbertoBSD

#1
Se puede trabajar a mas bajo nivel usando operadores de bits.

char *binario(unsigned int n){
 static char b[33];
 int i =0;
  do{
     b[i++] (n &1 ) ? '1' : '0';
    n = n>>1;
 }while(n);
 b[i] = '\0';
 return b;
}
Donaciones
1Coffee1jV4gB5gaXfHgSHDz9xx9QSECVW

ivancea96

Cita de: jorgediazbass en 29 Julio 2016, 07:44 AM

std::bitset <0x20> _;
scanf("%d",&_);


Y bueno, ten en cuenta que es una clase. Funciona, sí, pero no es la forma de asignarle valores. Tiene un constructor al que le puedes enviar el valor inicial.

jorgediazbass

Cita de: ivancea96 en 31 Julio 2016, 01:57 AM
Y bueno, ten en cuenta que es una clase. Funciona, sí, pero no es la forma de asignarle valores. Tiene un constructor al que le puedes enviar el valor inicial.

cual seria el constructor? xq tengo entendido que se llaman igual que clase osea seria algo asi?
bitset.bitset(argumento);