andy: Operatoren

Hi.

Schreibe gerade an einem Tutorial über PHP. Bisher bin ich bis zu den Operatoren gekommen, und dabei ist mir folgendes aufgefallen:

  
echo "3+2=", 3+2, "<br>"; /* Gibt 5 aus */  
echo "3==2=", 3==2, "<br>"; /* Gibt true zurück, wenn Vergleich erfolgreich, ansonsten false */  
echo "3^2=", 3^2, "<br>"; /* Gibt 9 zurück, weil 3^2 = 3*3 = 9 */  
echo "3<=2=", 3<=2, "<br>"; /* Gibt false zurück, weil 3 nicht kleiner als 2 ist */  

Interessant wäre die dritte Zeile
Das ^ gibt doch Potenzen an, richtig? Also wäre 3^2 = 3*3 = 9 ! Aber warum gibt man mir hier 1 aus? "1" erwarte ich eher beim Modulus 3%2 - aber warum nicht beim Zirkumflex?

Danke
andy

  1. Hi,

    Das ^ gibt doch Potenzen an, richtig?

    nein.

    Aber warum gibt man mir hier 1 aus?

    Weil 3 XOR 2 nun mal 1 ist. Wieso kennst Du, der Du ein Tutorial zum Thema PHP schreibst, dessen Dokumentation nicht?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hi,

      Das ^ gibt doch Potenzen an, richtig?

      nein.

      Dann verzapft mir Wikipedia nen Sch... http://de.wikipedia.org/wiki/Zirkumflex - Der letzt Absatz:

      [quote]
      Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen. Bei der Berechnung von Potenzen, z. B. mit einem Tabellenkalkulationsprogramm oder mit einem Taschenrechner schreibt man statt x² -> x^2.
      [/quote]

      Aber warum gibt man mir hier 1 aus?

      Weil 3 XOR 2 nun mal 1 ist. Wieso kennst Du, der Du ein Tutorial zum Thema PHP schreibst, dessen Dokumentation nicht?

      Kenn ich natürlich. Sa steht etwas von Bit-Operatoren. Aber Wikipedia hat mich total verwirrt - es gibt doch Potenzen an und hat nichts mit der Ein/Ausschaltung der Bits zu tun (laut Wikipedia jedenfalls). Bitte sagt mir wie es richtig ist.

      andy

      1. Hallo andy.

        Dann verzapft mir Wikipedia nen Sch... http://de.wikipedia.org/wiki/Zirkumflex - Der letzt Absatz:

        Nein, das stimmt schon.

        [quote]
        z. B. mit einem Tabellenkalkulationsprogramm oder mit einem Taschenrechner schreibt man statt x² -> x^2.
        [/quote]

        Jupp, siehe LaTex: [latex]x^2[/latex]

        Gruß, Ashura

        --
        Selfcode: sh:( fo:) ch:? rl:( br:^ n4:& ie:{ mo:) va:) de:> zu:) fl:( ss:| ls:[ js:|
        30 Days to becoming an Opera8 Lover -- Day 15: Mouse Gestures
        Meine Browser: Opera 8.0 | Firefox 1.0.4 | Lynx 2.8.3 | Netscape 4.7 | IE 6.0
        IE Layout-Workaround №1: <!--[if IE]><style type="text/css">*{display:none;}</style><![endif]-->
      2. Hi,

        Dann verzapft mir Wikipedia nen Sch...

        warum? Das, was dort steht, hat nicht den geringsten Zusammenhang zu PHP. Wo siehst Du einen Widerspruch, oder auch nur eine Verbindung? Genauso gut könntest Du sagen, das für die Negation übliche "!" dürfe nicht links eines Ausdrucks stehen, weil es ein Fakultätzeichen ist und nach rechts gehört. Oder ein gebräuchliches Symbol für Schnalzlaute in afrikanischen Sprachen ist.

        Kenn ich natürlich. Sa steht etwas von Bit-Operatoren. Aber Wikipedia hat mich total verwirrt - es gibt doch Potenzen an und hat nichts mit der Ein/Ausschaltung der Bits zu tun (laut Wikipedia jedenfalls). Bitte sagt mir wie es richtig ist.

        Ein Operator beschreibt eine Operation, keine mathematische Formel. "=" ist ein Zuweisungsoperator, und "x+3y=7" weist wohl kaum zwei Variablen einen gemeinsamen Wert zu. Du verquickst hier zwei Welten, die nichts miteinander zu tun haben.

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Cheatah,

          "!" […] ein gebräuchliches Symbol für Schnalzlaute in afrikanischen Sprachen ist.

          Dieses ist eigentlich U+01C3.

          Gunnar

          --
          “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
          1. Hi,

            "!" […] ein gebräuchliches Symbol für Schnalzlaute in afrikanischen Sprachen ist.
            Dieses ist eigentlich U+01C3.

            nun ja: "Latin Letter Retroflex Click = Latin Letter Exclamation Mark" (Unibook). Darüber hinaus gibt es hinreichend viele Kontexte, in denen Unicode nicht wirklich eine Rolle spielt - Papier beispielsweise. Davon abgesehen hast Du natürlich Recht ;-)

            Cheatah

            --
            X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
            X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
            X-Will-Answer-Email: No
            X-Please-Search-Archive-First: Absolutely Yes
            1. Hi Cheatah,

              nun ja: "Latin Letter Retroflex Click = Latin Letter Exclamation Mark" (Unibook).

              Nun ja: Latin Letter Exclamation Mark ≠ Exclamation Mark (Universität) ;-)
                            ^^^^^^

              Darüber hinaus gibt es hinreichend viele Kontexte, in denen Unicode nicht wirklich eine Rolle spielt - Papier beispielsweise.

              Jaja, Papier ist geduldig.

              Bei einer Textverarbeitung spielt es schon eine Rolle. Wenn du bspw. nach dem Buchstaben "ǃ" suchst, willst du nicht über die Satzzeichen "!" stolpern.

              Gunnar

              --
              “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
              1. Hi,

                nun ja: "Latin Letter Retroflex Click = Latin Letter Exclamation Mark" (Unibook).
                Nun ja: Latin Letter Exclamation Mark ≠ Exclamation Mark (Universität) ;-)

                ja :-) Der Unterschied zwischen unseren beiden Diskursansätzen ist, dass Du die technische Seite betrachtest, während ich mich einfach nur auf die Symbolik beziehe, weil andy meiner Ansicht nach lediglich ein Problem mit der Einordnung von Symbolen in einem bestimmten Kontext hat. Das Auge findet ein "ǃ" auch dann, wenn es ein "!" sucht.

                Bei einer Textverarbeitung spielt es schon eine Rolle. Wenn du bspw. nach dem Buchstaben "ǃ" suchst, willst du nicht über die Satzzeichen "!" stolpern.

                Was spricht dagegen? Letztlich ist es nur eine Frage der Komplexität und Flexibilität der Suchfunktion.

                Cheatah

                --
                X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
                X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
                X-Will-Answer-Email: No
                X-Please-Search-Archive-First: Absolutely Yes
                1. Cheatah,

                  Das Auge findet ein "ǃ" auch dann, wenn es ein "!" sucht.

                  Das Auge hält ein "-" ja auch für einen Bindestrich. Oder einen Gedankenstrich. Oder ein Minuszeichen. Und '"' für Anführungszeichen. Oder Zoll-Zeichen.

                  Das Problem ist, dass nicht alle Zeichen auf der Tastatur sind; und eine Tastatur mit 400 Tasten ist dem Anwender ebensowenig zuzumuten wie sich den Zeichencode aus einer Tabelle rauszusuchen und einzutippen.

                  Da muss die Software notwendig intelligent sein, "-" in "–" bzw. "−" umzuwandeln und '"' in '„', '“', '”' bzw '″'. Und hinreichend intelligent, das möglichst fehlerlos hinzubekommen. (M$ Word vertippt sich da schon mal.)

                  Deshalb stehen sicher viele "!" für Klicklaute. Und deshalb sagte ich auch "eigentlich".

                  Letztlich ist es nur eine Frage der Komplexität und Flexibilität der Suchfunktion.

                  Du willst Word-Anwendern keine Suche mit regulären Ausdrücken zumuten, oder? Achso, das kann Word ja auch gar nicht.

                  Gunnar

                  --
                  “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
      3. Hi,

        Dann verzapft mir Wikipedia nen Sch...

        Nö.

        [quote]
        Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen.
        [/quote]

        "oft" ist nicht "immer", und PHP ist nicht Mathematik.

        cu,
        Andreas

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. MudGuard,

          Dann verzapft mir Wikipedia nen Sch...
          Nö.

          Oder doch?

          [quote]
          Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen.
          [/quote]
          "oft" ist nicht "immer",

          Ich hab in noch keinem Mathebuch "x^2" (für "x²") gelesen.

          und PHP ist nicht Mathematik.

          Da versöhnen wir uns wieder. ;-)
          Gunnar

          --
          “I got my finger on the trigger / But I don’t know who to trust” (Bruce Springsteen, Devils and Dust)
      4. Hallo!

        Dann verzapft mir Wikipedia nen Sch... http://de.wikipedia.org/wiki/Zirkumflex - Der letzt Absatz:

        [quote]
        Auch in der Mathematik wird das Zeichen oft verwendet, um Potenzen zu kennzeichnen. Bei der Berechnung von Potenzen, z. B. mit einem Tabellenkalkulationsprogramm oder mit einem Taschenrechner schreibt man statt x² -> x^2.
        [/quote]

        Ja und? "Auch in der Mathematik wird das Zeichen oft verwendet..." daraus kannst Du doch nicht ernsthaft irgendeine Syntax für eine Programmiersprache ableiten wollen?!

        Unter http://de3.php.net/manual/de/language.operators.bitwise.php findest Du:

        $a ^ $b Entweder oder (Xor)  Bits, die entweder in $a oder $b gesetzt sind, werden gesetzt aber nicht in beiden.

        Und Du sagst Du kennst das? Wie kommst Du dann drauf dass dieselbe Syntax eine zweite Bedeutung haben könnte (die zu einem anderen Ergebnis führen muss)?

        Die Operatoren sind alle im Manual genau beschrieben: http://de3.php.net/manual/de/language.operators.php

        Für Potenzen benötigst Du mathematische Funktionen, in diesem Fall pow().

        Aber warum gibt man mir hier 1 aus?

        Weil 3 XOR 2 nun mal 1 ist. Wieso kennst Du, der Du ein Tutorial zum Thema PHP schreibst, dessen Dokumentation nicht?

        Kenn ich natürlich. Sa steht etwas von Bit-Operatoren. Aber Wikipedia hat mich total verwirrt

        so sehr dass Du das PHP-Manual nicht mehr finden konntest? ;-)

        • es gibt doch Potenzen an und hat nichts mit der Ein/Ausschaltung der Bits zu tun (laut Wikipedia jedenfalls).

        In manchen Programmen ist das so, bei PHP eben nicht. Wie gesagt, da stand doch lediglich "Auch in der Mathematik wird das Zeichen oft verwendet..."

        Grüße
        Andreas

        PS: Du kennst http://tut.php-q.net/?

        --
        SELFHTML Feature Artikel: http://aktuell.de.selfhtml.org/artikel/
        1. so sehr dass Du das PHP-Manual nicht mehr finden konntest? ;-)
          PS: Du kennst http://tut.php-q.net/?

          Ihr haltet mich alle für blöd, oder ? :-)
          Natürlich kenne ich das alles. Arbeite ja nicht umsonst schon seit 2 Jahren an PHP. Da ich diesen ^ aber nie benutze, kam mir das ein wenig komisch vor (Bitte nicht hauen...). Wobei braucht man das ^ überhaupt, ist der sinnvoll?

          Okay, ihr habt mich wieder auf den richtigen Weg gebracht. Danke dafür.

          Ach ja, MudGuard: Du hast recht, PHP ist nicht Mathematik - basiert aber darauf und folgt denselben Regeln, vor allem die Operatoren!

          1. Hej,

            Wobei braucht man das ^ überhaupt, ist der sinnvoll?

            Is das dein Ernst? Wie möchtest du sonst durch einen logischen Ausdruck beschreiben, dass genau einer von zwei Zuständen erlaubt ist?

              
              ( a ^ b ) == ( ( a && ! b ) || ( ! a && b ) )  
            
            

            Ach ja, MudGuard: Du hast recht, PHP ist nicht Mathematik - basiert aber darauf und folgt denselben Regeln, vor allem die Operatoren!

            Aha.

            Beste Grüße
            Biesterfeld

            --
            Ingenieur: Wie funktioniert das?
            Ökonom: Was kostet das?
            Informatiker: Ketchup oder Mayo?