Hallo,
ich habe eine Frage wegen dem Tide-Operator ( ~ ). Seine Aufgabe ist es doch zu negieren oder? Das hab ich also so zu verstehen: Nullen werden Einsen und umgekehrt. Evtl liegts daran das ich ne fehlerhafte Tabelle benütze (hier ihr link: Tabelle der Binärzahlen von 0 bis 255) aber
Wenn:
Dann müsste c == 14 sein.
weil:
17 in binär ist 10001 negiert ist es dann 01110 die Null fällt weg** also 1110 was ja der Code für 14 ist.
Man bekommt aber -18. Also statt zu negieren wird (n - (n * 2)) -1 gemacht.
Allerdings besteht ein byte ja aus 8 bit womit bei 10001 drei Stellen fehlen würden daher die Frage ob meine Tabelle unzulänglich ist.
Bei dem Tutorial das ich gerade mach wurde 11101110 angegeben das wäre dann laut Tabelle 238.
** Wie ich darauf komme das die Null (oder überflüssige nullen) einfach weggelassen wird/werden:
Beim rumprobieren mit Operatoren und verschiedenen Werten zb.
und weil es da und bei anderen Beispielen auch so war, den Anschein zumindest hatte, nahm ich an das es so läuft. Das überflüssige Nullen einfach wegfallen.
Viel gelaber und keine klare Frage... aber meine Fragen sind: wieso wird im Tutorial dieser Wert angegeben 11101110, was ist dieser Wert in int, gibt es irgendwo eine Liste die für Java besser geeignet ist, fallen "nutzlose" Nullen wirklich einfach weg und gibt es eine Methode mit der ich int-Werte als binären Code ausgeben kann und umgekehrt.
Dann schon mal Danke opcorn:
ich habe eine Frage wegen dem Tide-Operator ( ~ ). Seine Aufgabe ist es doch zu negieren oder? Das hab ich also so zu verstehen: Nullen werden Einsen und umgekehrt. Evtl liegts daran das ich ne fehlerhafte Tabelle benütze (hier ihr link: Tabelle der Binärzahlen von 0 bis 255) aber
Wenn:
Java:
class TideTest
{
public static void main(String args[])
{
byte a= 17;
int c;
c= ~17;
System.out.println(c);
}}
weil:
17 in binär ist 10001 negiert ist es dann 01110 die Null fällt weg** also 1110 was ja der Code für 14 ist.
Man bekommt aber -18. Also statt zu negieren wird (n - (n * 2)) -1 gemacht.
Allerdings besteht ein byte ja aus 8 bit womit bei 10001 drei Stellen fehlen würden daher die Frage ob meine Tabelle unzulänglich ist.
Bei dem Tutorial das ich gerade mach wurde 11101110 angegeben das wäre dann laut Tabelle 238.
** Wie ich darauf komme das die Null (oder überflüssige nullen) einfach weggelassen wird/werden:
Beim rumprobieren mit Operatoren und verschiedenen Werten zb.
Java:
class OperatorTest
{
public static void main(String args[])
{
byte a=13; // Binäre-Code für 13 == 1101
byte b=14; // Binäre-Code für 14 == 1110
int c;
c=a ^ b; //Das Ergebnis wäre also 0011 also 11; der Binäre-Code für 3
System.out.println(c);
}}
Viel gelaber und keine klare Frage... aber meine Fragen sind: wieso wird im Tutorial dieser Wert angegeben 11101110, was ist dieser Wert in int, gibt es irgendwo eine Liste die für Java besser geeignet ist, fallen "nutzlose" Nullen wirklich einfach weg und gibt es eine Methode mit der ich int-Werte als binären Code ausgeben kann und umgekehrt.
Dann schon mal Danke opcorn: