Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hi, ich bin ja wirklich nicht schlecht in C, aber bei folgendem Ausdruck weiß ich nicht weiter

wann der Ausdruck wahr wird und wann falsch.

if (qoff & 0x1)

qoff ist ein long, das & bedeutet ein Logisches UND ist auch auch klar, und die 0x1 ist mir soweit auch klar(Hexadezimalsystem). qoff wird einfach mit einer 1 UND verknüpft. Aber woran wird nach der Verknüpfung festgemacht ob der Ausdruck wahr oder falsch ist, anhand des Werts des most-significant bit oder least-significant bit?

  • Autor

Das mit 0=false und 1=true weiß ich doch, wie verhält es sich aber mit dem obigen Ausdruck.

qoff ist vom Datentyp long, also Darstellung mittels des 2er Komplements, jetzt ist für mich entscheident ob das höherwertigste bzw. niederwertigdte bit den Ausschlag für true oder false gibt.

Beispiel: qoff=234

Dann lautet die Binärdarstellung:

11010100

Das verknüpfe ich mit 1, nutze die UND Verknüpfung

11010100

00000001

11010100

Das interessiert mich letztendlich, das letze bit entscheidet oder?

Das verknüpfe ich mit 1, nutze die UND Verknüpfung

11010100

00000001

11010100

Falls die dritte Zeile das Ergebnis darstellen soll: Das ist keine UND-Verknüpfung, du hast einfach die erste Zeile abgeschrieben.

Das interessiert mich letztendlich, das letze bit entscheidet oder?
Alle Bits entscheiden. Wenn im Ergebnis auch nur ein Bit stehen bleibt (egal welches), ist das Ergebnis wahr.
  • Autor

Ok alle Bits entscheiden, kann man das irgendwo nachlesen zum Beispiel in einem Buch,

hab bei mir in der Literatur nämlich dazu nix gefunden.

Und ja die 3. Zeile soll das Ergebnis meiner UND Verknüpfung darstellen, wieso ist das falsch

0 UND 0 ergibt 0, 0 UND 1 und umgekehrt ergibt ebenfalls 0, 1 UND 1 ergibt 1. Das habe ich für jede Stelle entsprechend durchgeführt.

qoff hat den Wert 234, im Binärsystem 11010100, das sollte soweit stimmen, da es sich bei

der if Anweisung um 0x1 andelt wird einfach mit einer 1 die bitweise UND Verknüpfung durchgeführt, sieht doch dann so aus:

11010100

00000001

Oder nicht, dann zeig mir bitte wie es korrekt sein soll, so stehts auch bei Wiki?

Ok alle Bits entscheiden, kann man das irgendwo nachlesen zum Beispiel in einem Buch,

hab bei mir in der Literatur nämlich dazu nix gefunden.

Alles, was du wissen musst, steht hier im Thread. Wenn das Ergebnis der Verknüpfung 0 ist, bekommst du false, ansonsten true. Damit ist klar, dass alle Bits entscheiden, denn sobald auch nur ein Bit gesetzt ist, kommt ja nicht mehr 0 heraus.

Und ja die 3. Zeile soll das Ergebnis meiner UND Verknüpfung darstellen, wieso ist das falsch

0 UND 0 ergibt 0, 0 UND 1 und umgekehrt ergibt ebenfalls 0, 1 UND 1 ergibt 1. Das habe ich für jede Stelle entsprechend durchgeführt.

Nein, hast du nicht. Beispiel erstes Bit: 1 UND 0 ergibt 0, bei dir steht 1.

11010100

00000001

UND-Ergebnis:

00000000

  • Autor

Stimmt, in der Eile einfach copy and paste und nicht verifziert das es auch das richtige ist.

Gut stimmt, mein Fehler und Danke an Klotzkopp jetzt weiß ich was es zu bedeuten hat und kann es selbst anwenden.

Das war das einzigste was mir Probleme bereitet hat weil ich nicht wußte was dahinter steckt, hätte ich mir auch selbst

zusammen reimen können aber ich war mir unsicher.

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.