Foro de elhacker.net

Programación => Java => Mensaje iniciado por: m@o_614 en 15 Enero 2015, 20:19 pm



Título: Operadores de manejo de bits
Publicado por: m@o_614 en 15 Enero 2015, 20:19 pm
Saludos

Estoy haciendo una función a la cual le paso por parámetros una variable de tipo int, y esa variable la convierto a binario con la ayuda de operadores de bits

Código
  1. public static void funcion(int valor)
  2. {
  3. int i,bytes;
  4. char binario[] = new char[32];
  5. for(i = bytes-1;i >= 0 ;i--)
  6. {
  7. binario[i] = (valor&1)? '1':'0';
  8.                        valor >> 1;
  9. }
  10. }

Al principio declaro un arreglo de caracteres que va a almacenar el numero binario, despues con un ciclo for voy verficando con &(el equivalente a AND) que si los dos bits son 1 en binario se almacena 1, de lo contrario se almacena 0, el problema es que con el operador condicional ? en la parte donde tengo (valor&1) me aparece un mensaje de error que dice:

cannot convert from int to boolean, y no entiendo por qué si esta misma función ya la había utilizado en un programa en C

de antemano gracias


Título: Re: Operadores de manejo de bits
Publicado por: El Benjo en 16 Enero 2015, 21:25 pm
Intenta con el && en vez de &:

Código
  1. binario[i] = (valor&&1)? '1':'0';


Título: Re: Operadores de manejo de bits
Publicado por: ivancea96 en 16 Enero 2015, 22:38 pm
Código
  1. valor&1==1
Debería servir.