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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren