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.

Differenzübernahme in Bit-Maske

Empfohlene Antworten

Veröffentlicht

Preamble:

Unser Projekt arbeitet mit Kalendern die als Byte Array mit einem Startdatum implementiert sind. Dabei repräsentiert jedes Byte eine Woche. Die 1 & 0en sagen aus ob das Objekt an dem der Kalender hängt an diesem Tag aktiv ist oder nicht.

Problem:

Ein bestimmter Typ von Objekt (:A) hat nun zwei Kalender (K1 und K2). Alle Änderungen in K1 sollen auch in K2 übernommen werden wobei die beiden Kalender unterschiedlich aussehen können.

Meine erste Idee war das typische vorgehen mit XOR-Operationen, jedoch kann dies zum falschen Resultat in K2 führen.

Mein Lösungsansatz:

Ich habe zwar eine Lösung, jedoch halte ich sie für sehr unperformant, was nicht gerade ein gutes Zeichen ist und ich hoffe ich war einfach zu dämlich eine bessere Lösung zu finden.

Also:

diff := K1 xor K1'

for each bit in diff

if bit=1 then

K2 := K1

K1 steht für den neuen (aktuellen) Kalender und K1' für den alten

Perfekt. Mein Gott eigentlich so simpel. Weshalb verlernt man nur so schnell Bool. Alg. nach dem Studium? :-)

Vielen für die Hilfe.

P.S.:

Ich nehme aber an du meintest: K1 und nicht K1'

... !diff) or (K1 and diff)

da K1' ja der alte Kalender (ohne Änderungen) wär. Allerdings macht es mehr Sinn wenn man die K1 und K1' vertauscht damit es gängigen Mahte Terminologien entspricht.

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

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.