Hallo,
Die Thematik hatte ich erst neulich: "was ist 4 << 3"?
(ZCE-Prüfungs-Frage im Vorbereitungs-Kurs)
Zends Musterlösung ist falsch! Die sagen 0!
da würde mich jetzt aber *brennend* deren Begründung und/oder Herleitung interessieren. Ich bekomme nämlich nicht 0 heraus, sondern 32.
Oder meinten die vielleicht eher einen Right Shift? Oder hast du einfach falsch gelesen?
Denn: 4 >> 3 = 0
Mindeestens 90% der von mir befragten Informatiker halten allerdings deren Lösung für richtig
Für meinen korrigierten Fall halte ich das auch für die richtige Lösung - was käme sonst in Frage?
Ja, es geht dabei um Bits, aber das Problem ist gelöst, wenn man konsequent zuende denkt - als Entwickler interessiert mich keine Repräsentation der Daten im physikalischen Speicher - als Mensch schon.
Ja, aber der Bitshift-Operator arbeitet mit dem Zahlenwert als solchem, der seinerseits unabhängig davon ist, ob diese Zahlen im Speicher als MSB-first oder LSB-first abgelegt sind.
Die literale Darstellung von Zahlen sollte eindeutig bleiben.
Eben.
So long,
Martin
--
Lieber blau machen, als sich schwarz ärgern.
Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(