hola soy nuevo en el foro, estaba leyendo este problema y apesar de que tiene harto tiempo, como nadie lo respondio lo hago por si alguien le interesa. No se me ocurre con los operadores por desplazamiento pero con operadores logicos es simple, haber si sirve de algo.
000 =0
001 =1
010 =2
011 =3
100 =4
101 =5
110 =6
111 =7
los pares terminan en 0
asi que para ver si es par o impar ocupamos un and 1
1=001
2=010
3=011
1 and 2 = 000
1 and 3 = 001 = 1
si el resultado es 0 es par si es 1 impar, el programa es super simple queda algo asi:
import java.io.*;
public class binary {
public static void main(String [] args) throws IOException {
BufferedReader teclado = new BufferedReader( new InputStreamReader( System.in ) );
String linea;
System.out.println("Ingrese un número (quit para salir)");
while( !(linea= teclado.readLine()).equals( "quit" ) ) {
int k=1;
int resultado = Integer.parseInt(linea);
resultado = k & resultado;
if(resultado==0) { System.out.println("Numero par"); }
else { System.out.println("Numero impar"); }
System.out.println("Ingrese un número (quit para salir)");
}
}
}
Seguire pensando la solucion con operadores de desplazamiento.
Saludos.
http://elkcro.eianes.com