Sinn hinter der Aufgabe: "Check if a given number is sparse"

Gast #4315395
Lesenswert?
• ▲
▼
Zahlenjongleur schrieb:
> bin gerade über folgenden Artikel [1] gestolpert. Simpel ist es aber ich
> frage mich, warum man das wissen wollen würde?

beispielsweise für serielle Multiplikation, bei der die Anzahl der '1' 
bits angibt wie oft addiert werden muss, also

0xFFFF  * 0x0003 braucht nur 2 additionen während
0x0003 * 0xFFFF  16 braucht.  Es kann also sinn machen beide Operanden 
zu tauschen. Natürlich sollte man vorher mit realen Daten simuliereon ob 
man durch den test und das Umsortieren nicht mehr Operation benötigt als 
man spart.

Und gibt es noch das problem der Gleichstromfreiheit und 
taktrückgewinnung, bei demm lange folgen von Nullen mit '1'-bist 
aufbricht (bit stuffing - https://de.wikipedia.org/wiki/Bitstopfen). Da 
ist das Testen auf schwach besetzte Wörter ein simpler Test ob man hier 
bitstuffing nutzen sollte.
Gast #4315763
Lesenswert?
• ▲
▼
Vlad T. schrieb:
> die da gezeigte Implementierung ist aber blöd.
>
> 1. signed ints zu schieben ist "implementation defined behaviour".
> 2. jede zahl -1610612735 < n < 0 ist nicht sparse, weil die oberen bits
> wegen dem 2er Komplement gesetzt sind. - Ist das Absicht?

Stimmt.. aber das steht ja auch dabei!

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.