elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Un vector de booleanos se puede convertir en un integer y viceversa?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Un vector de booleanos se puede convertir en un integer y viceversa?  (Leído 2,982 veces)
Bròquil

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Un vector de booleanos se puede convertir en un integer y viceversa?
« en: 4 Diciembre 2013, 14:03 pm »

Hola mi intención es hacer un programa que a partir de diferentes booleanos pueda tener la deficinción de un concepto. Esto lo pienso hacer con varios vectores de booleanos, mi pregunta és si se puede pasar de un vector de booleanos a un integer facilmente y videversa.

Por ejemplo: si yo tengo: [1][0][1] en un vector de booleanos que me salga 5 i al inversa que si pongo 5 me salga un vector de booleanos con [1][0][1]

struct concepte {
    string palabra;
    bool Vfrase = false;
    bool Significado=false;
   
};


En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Un vector de booleanos se puede convertir en un integer y viceversa?
« Respuesta #1 en: 4 Diciembre 2013, 15:17 pm »

En C++: Algo así?
Código
  1. string toBool(int);
  2.  
  3. bool *v; //vector
  4. int n = 5; //numero
  5. string s = toBool(n);
  6. v = new bool[s.length()]; //el tamaño del vector será del tamaño del string.
  7. for(int i=0;i<s.length();i++)
  8.    v[i] = s[i];
  9.  

Ok, el código lo adaptarías tú. La función toBool() recibiría por valor un int (o unsigned int, o lo que quieras), y retornaría un string que será el número en binario
Ejemplo: toBool(6) retorna la string: "110".

Esto es un ejemplo, para darte una idea. Si usas C, tendrías que cambiar algunas cosas, como lo de string, y lo de "new".

Si no era lo que buscabas, postea con más exactitud lo que buscas.

Suerte.


En línea

Bròquil

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Un vector de booleanos se puede convertir en un integer y viceversa?
« Respuesta #2 en: 6 Diciembre 2013, 17:56 pm »

Si gracias és esto. lo que no entiendo de este codigo la función  new bool i el asterisco. Asterisco es para hacer vectores ed tamaño indefinido no?

Tambien necessitaria el programa inverso.
« Última modificación: 6 Diciembre 2013, 17:58 pm por Bròquil » En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Un vector de booleanos se puede convertir en un integer y viceversa?
« Respuesta #3 en: 6 Diciembre 2013, 18:07 pm »

Fail. Ahora vuelvo a responder.
En línea

ivancea96


Desconectado Desconectado

Mensajes: 3.412


ASMático


Ver Perfil WWW
Re: Un vector de booleanos se puede convertir en un integer y viceversa?
« Respuesta #4 en: 6 Diciembre 2013, 18:12 pm »

¿Sabes cómo se pasa un decimal a binario y viceversa? Eso es lo que tiene que hacer tu función.
El asterisco significa que la variable es un puntero.
New es para alojar memoria dinámica.

Repasa un poco esos conceptos, que son muy importantes. (O pregúntale a tu profesor, si tuvieses)

Olvídate del código que te puse. Estuve repasandolo, y no está todo lo optimizado que puede. Tú lo que buscas, es la función "toBool" (O como la quieras llamar)
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Un vector de booleanos se puede convertir en un integer y viceversa?
« Respuesta #5 en: 6 Diciembre 2013, 21:03 pm »

Sin mirarme librerías ni nada, te lo puedes hacer tu mismo fácilmente.

Código
  1. int Convertiraentero(vector<bool> &dato)
  2. {
  3.   int numero = 0;
  4.   int multiplicador = 1;
  5.  
  6.   for (int i = dato.size()-1; i >=0;i--)
  7.   {
  8.        numero += (dato[i]*multiplicador);
  9.        multiplicador *= 2;
  10.   }
  11.   return numero;
  12. }

Suponiendo que el vector simboliza un número binario natural y está ordenado de mayor a menor.
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
rir3760


Desconectado Desconectado

Mensajes: 1.639


Ver Perfil
Re: Un vector de booleanos se puede convertir en un integer y viceversa?
« Respuesta #6 en: 7 Diciembre 2013, 01:46 am »

Una forma ligeramente distinta de implementar la función es:
Código
  1. int Convertiraentero(vector<bool>& dato)
  2. {
  3.   int rv = 0;
  4.  
  5.   for (vector<bool>::size_type i = 0; i < dato.size(); i++)
  6.      rv = rv * 2 + dato[i];
  7.  
  8.   return rv;
  9. }

Un saludo
En línea

C retains the basic philosophy that programmers know what they are doing; it only requires that they state their intentions explicitly.
--
Kernighan & Ritchie, The C programming language
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Convertir ascii Hexa y viceversa « 1 2 »
Hacking Wireless
temas 12 39,906 Último mensaje 19 Septiembre 2011, 00:38 am
por Garcad
se puede convertir un video a flv en php?
PHP
CICOLO_111234 1 1,122 Último mensaje 24 Marzo 2009, 16:32 pm
por дٳŦ٭
Cómo convertir mayúsculas a minúsculas y viceversa en Batch. Ayuda!!
Scripting
<ИΘZIЭ(ŦB> 3 8,211 Último mensaje 11 Septiembre 2009, 23:15 pm
por <ИΘZIЭ(ŦB>
Como convertir int a string y viceversa?
Programación C/C++
j0lama 4 2,037 Último mensaje 29 Noviembre 2014, 20:15 pm
por Orubatosu
Pregunta sobre condicionales y booleanos.
Programación C/C++
DeIMachine 7 1,039 Último mensaje 8 Noviembre 2015, 23:40 pm
por DeIMachine
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines