Capítulo 002 Ejercicio 008b (Manipulación de bits)

// He aqui un ejemplo que demuestra el uso de todos los operadores de bit.

import java.util.*;

public class ManipulacionBits {

public static void main(String args[]){
Random aleatorio = new Random();
int i = aleatorio.nextInt();
int j = aleatorio.nextInt();
pBinInt("-1", -1);
pBinInt("+1", +1);
int posmax = 2147483647;
pBinInt("posmax", posmax);
int negmax = -2147483648;
pBinInt("i", i);
pBinInt("~i", ~i);
pBinInt("-i", -i);
pBinInt("j", j);
pBinInt("i & j", i&j);
pBinInt("i | j", i|j);
pBinInt("i ^ j", i^j);
pBinInt("i << 5", i<<5);
pBinInt("i >> 5", i>>5);
pBinInt("(~i) >> 5", (~i)>>5);
pBinInt("i >>> 5", i>>>5);
pBinInt("(~i) >>> 5", (~i)>>>5);

long l = aleatorio.nextLong();
long m = aleatorio.nextLong();
pBinLong("-1L", -1L);
pBinLong("+1L", +1L);
long ll = 9223372036854775807L;
pBinLong("maxpos", ll);
long lln = -9223372036854775808L;
pBinLong("maxneg", lln);
pBinLong("l", l);
pBinLong("~l", ~l);
pBinLong("-l", -l);
pBinLong("m", m);
pBinLong("l & m", l&m);
pBinLong("l | m", l|m);
pBinLong("l ^ m", l^m);
pBinLong("l << 5", l<<5);
pBinLong("l >> 5", l>>5);
pBinLong("(~l) >> 5", (~l)>>5);
pBinLong("l >>> 5", l>>>5);
pBinLong("(~l) >>> 5", (~l)>>>5);
}

static void pBinInt(String s, int i){
System.out.println(s + ", int: " + i + ", binario: ");
System.out.print(" ");
for(int j=31; j>=10; j--)
if(((1 <=0; i--)
if(((1L<