Hallo zusammen,
ich schreibe gerade ein Programm und tüfftel an einem Long herum. Nun möchte ich eine Methode schreiben die mir den Long Binär ausgibt. Ich frage mich aber warum gibt er mir den binären Wert zweimal aus?
(00000 00000001 01101000 00000000 00000000 00000001 0110100)
Es geht hier speziell um die Methode printBits....
ich schreibe gerade ein Programm und tüfftel an einem Long herum. Nun möchte ich eine Methode schreiben die mir den Long Binär ausgibt. Ich frage mich aber warum gibt er mir den binären Wert zweimal aus?
(00000 00000001 01101000 00000000 00000000 00000001 0110100)
Es geht hier speziell um die Methode printBits....
Java:
public class aufgabe1 {
public static int getCard(long bs) {
int kardinalitaet = 0;
for (int i = 0; i < 64; i++) {
bs = bs >> 1;
long letzteZiffer = bs % 2;
if (letzteZiffer == 1) {
kardinalitaet++;
}
}
return kardinalitaet;
}
public static int getLowestSetBit(long bs) {
int counter = 0;
for (int i = 0; i < 64; i++) {
counter++;
bs = bs >> 1;
long letzteZiffer = bs % 2;
if (letzteZiffer == 1) {
return counter;
}
}
return 0;
}
public static int getHighestSetBit(long bs) {
int counter = 0;
int highestSetBit = 0;
for (int i = 0; i < 64; i++) {
counter++;
bs = bs >> 1;
long letzteZiffer = bs % 2;
if (letzteZiffer == 1) {
highestSetBit = counter;
}
}
return highestSetBit;
}
public static long include(long bs, int b) {
bs = bs | (1 << b);
return bs;
}
public static String istGesetzt(long bs, int b) {
System.out.println("istgesetzt:" + bs);
if ((bs & 1 << b) != 0) {
return "Bit " + b + " ist gesetzt";
}
return "Bit " + b + " ist nicht gesetzt";
}
public static boolean isValid(long bs) {
if ((bs & 1 << 0) != 1) {
return true;
}
return false;
}
public static boolean isComplete(long bs) {
for (int i = 0; i < 64; i++) {
if ((bs & 1 << i) != 1) {
return false;
}
}
return true;
}
public static void printBits(long bs) {
for (int i = 52; i > 0; i--) {
if ((bs & (1 << i)) != 0) {
System.out.print("1");
}
else {
System.out.print("0");
}
if (i % 8 == 0) {
System.out.print(' ');
}
}
System.out.println();
}
public static void main(String[] args) {
long bs = 0b0101101000;
System.out.println(bs);
int b = 4;
System.out.println(getLowestSetBit(bs));
System.out.println(getHighestSetBit(bs));
System.out.println(include(bs, b));
System.out.println(istGesetzt(include(bs, b), b));
System.out.println(isValid(bs));
System.out.println(isComplete(bs));
printBits(bs);
}
}
Zuletzt bearbeitet: