[Hilo Oficial] Esto también es otro arte...el ARTE de programar
Cita
Hola.

He estado repasando las colecciones de Java ya que quiero intentar de nuevo los arboles ... pero al mirar por ahí ejemplos de BitSet, me he encontrado con uno peliagudo, o al menos para mí:

Código:
import java.util.*;

public class java414{
public static void main(Strin args[]){

Random aleat = new Random();
byte bt = (Byte)aleat.nextInt();
BitSet bbyte = new BitSet();

for(int i=7; i >= 0; i--){
if(((1 << i) & bt) != 0)
bbyte.set(i);
else
bbyte.clear(i);
}System.out.println("Valor byte: "+bt);
printBitSet(bbyte);

short st = (short)aleat.nextInt();
BitSet bshort = new BitSet();
for(int i=15: i >=0; i--){
if(((1 << i) & st) != 0)
bshort.set(i);
else
bshort.clear(i);
}
System.out.println("Valor short: "+st);
printBitSet(bshort);

int it = aleat.nextInt();
BitSet bint = new BitSet();
for(int i=31; i>= 0; i--){
if(((1 << i) & it) != 0)
bint.set(i);
else
bint.clear(i);
}
System.out.println("Valor int: "+it);
printBitSet(bint);


BitSet b1 = new BitSet();
b1.set(127);
System.out.println("Fija el bit 127: "+b1);


BitSet b2 = new BitSet(65);
b2.set(255);
System.out.println("Fija el bit 255: "+b2);


BitSet b3 = new BitSet(512);
b2.set(1023);
System.out.println("Fija el bit 1023: "+b3);
}

static void printBitSet(BitSet b){
System.out.println("Bits: "+b);

String bbits = new String();
for(int j=0; j < b.size(); j++)
bbits += (b.get(j) ? "1" : "0");
System.out.println("Patron de bits: "+bbits);
}
}
}

Como podéis ver se trata de crear tres random, primero un byte, luego un short y por último un int. Lo que hace es recorrer sus bytes con el bucle, es decir, los 8 del byte, los 16 del short y los 32 del entero.

Lo que no entiendo muy bien, es exactamente lo que hace dentro del if, pero sé que al compilarlo, en la llamada al método printBitSet, muestra los bytes en forma binaria, y luego te dice las posiciones de los "1", eliminando los "0".

Por cosas así me planteo dejar la programación, ya que las matemáticas nunca se me han dado bien, y son muy importantes para sacar este tipo de cosas.

Un saludo.


Mensajes en este tema
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 25-10-2012 15:34
Re:Esto también es otro arte...el ARTE de programar - por Corona Radiata - 27-10-2012 03:00
Re:Esto también es otro arte...el ARTE de programar - por Led Zeppelin - 10-11-2012 02:13
Re:Esto también es otro arte...el ARTE de programar - por Juntacadaveres - 24-10-2012 16:47

Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)