christopher: Bitweise Operatoren

guten tag forumler(innen),

ich beschäftige mich seit ein paar tagen mit der sprache java.
jetzt steht in meinem buch ein ausdruck, dessen logik mir nicht
in den kopf gehen will...
und zwar geht es um Bitweise Operatoren.
der code dazu:


public class bitweise
{
  public static void main(String[] args)
  {
    int i = 55;
    int j = 97;
    System.out.println(i & 15);
    System.out.println(j & 15);
  }
}


was ich jetzt nicht verstehe ist die ausgabe:


7
1


wie setzen sich die beiden zahlen 7 und 1 zusammen bzw.
woher kommen die überhaupt ?

ich wäre euch sehr dankbar wenn mir mal einer kurz den
zusammnhang erläutern könnte.. besten dank im voraus

mfg
christopher

  1. Hi,

    int i = 55;
        int j = 97;
        System.out.println(i & 15);
        System.out.println(j & 15);
    7
    1

    55 = 32 + 16 + 4 + 2 + 1 = binär  110111
    15 = 8 + 4 + 2 + 1       = binär    1111
    7 = 4 + 2 + 1            = binär     111

    97 = 64 + 32 + 1         = binär 1100001
    15 = 8 + 4 + 2 + 1       = binär    1111
    1  = 1                   = binär       1

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      int i = 55;
          int j = 97;
          System.out.println(i & 15);
          System.out.println(j & 15);
      7
      1

      55 = 32 + 16 + 4 + 2 + 1 = binär  110111
      15 = 8 + 4 + 2 + 1       = binär    1111
      7 = 4 + 2 + 1            = binär     111

      97 = 64 + 32 + 1         = binär 1100001
      15 = 8 + 4 + 2 + 1       = binär    1111
      1  = 1                   = binär       1

      cu,
      Andreas

      herzlichsten dank...
      da hätt ich ja ewig drüber 'philosophieren' können.

      mfg
      christopher

  2. public class bitweise
    {
      public static void main(String[] args)
      {
        int i = 55;
        int j = 97;
        System.out.println(i & 15);
        System.out.println(j & 15);
      }
    }


    was ich jetzt nicht verstehe ist die ausgabe:


    7
    1


    i=55  00110111 (binär)
    j=97  01100001 (binär)
    15    00001111 (binär)
    &  logisch und bitweise

  3. Hallo Christopher,

    und zwar geht es um Bitweise Operatoren.
        int i = 55;
        int j = 97;
        System.out.println(i & 15);
        System.out.println(j & 15);

    wie setzen sich die beiden zahlen 7 und 1 zusammen bzw.
    woher kommen die überhaupt ?

    Die Zahl 55 wird im binären Zahlensystem wie folgt dargestellt:
           64   32   16    8    4    2    1    <- dezimal
          2^6  2^5  2^4  2^3  2^2  2^1  2^0    <- Basis
            0    1    1    0    1    1    1    <- binär

    ein bitweises UND (&) kannst du dir so vorstellen

    55 = 110111      <- (1)
       15 =   1111      <- <2)
    ---------------
            000111      <- (3)

    Überall dort wo in (1) UND (2) ein Bit gesetzt ist, wird auch im Ergebnis (3) ein Bit gesetzt.
    Und 111 ist (2^2 + 2^1 + 2^0 = 3 + 2 + 1 = 7) Alles klar?

    Grüße,

    Maxx

    --
    Es gibt nur 10 Arten von Individuen ...
    Binär denkende und solche die es nicht verstehen.