Ich habe ein Problem beim Versuch, die bitweisen Werte eines Java-Byte-Typs zu finden. Wenn ich versuche, den Wert einer bestimmten Anzahl von Bits mit dem bitweisen Operator & zu erhalten, ist dieser Wert nicht so, wie ich es vorhergesehen habe. Der (sehr einfach) Code ist wie folgt:Problem beim Herausfinden von Bit-Werten aus dem Byte in Java
public class Demo
{
public static void main(String[]arg)
{
byte demo = 127;
System.out.println("demo is: "+(demo & 00000011));
}
}
In diesem Fall erwarte ich ein 3 zu erhalten (da das, was ich erwarte, ist 01111111 und 00000011 = 00000011), aber ich erhalte ein 9 (00001001). Wenn ich es mit 00000111 mache, dann ist das Ergebnis 73 (01001001) statt 7. Warum werden zwei Nullen in den Vergleich eingeführt?
Ich habe die Antworten, die auf andere Fragen gegeben wurden überprüft, aber sie funktionieren nicht in meinem Fall, oder sind nicht genau das gleiche, was ich anfordere. Ich bin mir sicher, dass es eine Kleinigkeit geben muss, aber ich kann nicht herausfinden, wie.
Vielen Dank im Voraus
00000011 ist ein Oktal wörtlichen, Wert 8 + 1 = 9. –
Danke Patricia, es funktioniert jetzt. Ich habe bemerkt, dass wenn ich die Zahl als ein Byte (zum Beispiel 3 statt 00000011) hinzufüge, es auch funktioniert. – Jesus