Supportforum von www.raeppel.de
http://www.raeppel.de/phpBB3/

mehr als 1 Bit high?
http://www.raeppel.de/phpBB3/viewtopic.php?f=12&t=301
Seite 1 von 1

Autor:  Manuel [ 11.09.2008, 07:35 ]
Betreff des Beitrags:  mehr als 1 Bit high?

Hi Leute,

gibt es eine einfache Funktion (ohne Bits zählen) die eine 1 rausgibt wenn in einem Byte/WORT/Doppelwort mehr als 1 Bit high ist?

Manuel

Autor:  FvE [ 11.09.2008, 08:59 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

In der Standard Bibliothek gibt es unter TI-S7 Converting Blocks den FC99 BITSUM.
Dieser zählt die Anzahl der Bits die gesetzt sind.
Wenn Du den Rückgabewert auf >1 vergleichtst, müsste das doch Funktionieren

Gruss
FvE

Autor:  Manuel [ 11.09.2008, 09:17 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Hallo FvE,

Zitat:
ohne Bits zählen


Ich dachte ich hätte mal irgendwo 2-3 Programmzeilen gesehen die die Auswertung erledigt haben. Ich will das aus Zykluszeitgründen ohne zuviele Schleifen/Bausteinaufrufen haben weil ich die Auswertung schon in einer Schleife über einige Worte machen will.

Manuel

Autor:  smart_chris [ 13.09.2008, 18:37 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Warum nicht so

L BYTE/WORD/DWORD
L 0
>I / D
= 1

damit sollte das ganze doch erldigt sein oder?

Ich denke da hat mal jemand den Wald vor lauter Bäumen nicht gesehen :-)

MFG

Chris

Autor:  Gast [ 14.09.2008, 09:10 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

smart_chris hat geschrieben:
Warum nicht so

L BYTE/WORD/DWORD
L 0
>I / D
= 1

damit sollte das ganze doch erldigt sein oder?

Ich denke da hat mal jemand den Wald vor lauter Bäumen nicht gesehen :-)

MFG

Chris


Ich denke das Du die Frage nicht richtig gelesen hast.

Autor:  smart_chris [ 14.09.2008, 10:59 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Warum Frage nicht gelesen? Wenn er eine 1 Haben will kann er das ja so machen. Entweder er nimmt es als Bit und verarbeitet es weiter oder er kann das erste Bit in seinem Auswertebereich setzten und hat somit ebenfalls eine 1.

Richtig wäre natürlich auf ungleich 0 abzufragen.

Chris

Autor:  ARaeppel [ 14.09.2008, 11:08 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Hallo Chris,

Zitat:
die eine 1 rausgibt wenn in einem Byte/WORT/Doppelwort mehr als 1 Bit high ist


0100 0000 -> 0
0101 0000 -> 1
0000 1101 -> 1

nicht zu verwechseln mit mindestens 1 Bit high!

André

Autor:  smart_chris [ 14.09.2008, 11:58 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Stimmt da hab ich was falsch verstanden.

Autor:  Freidenker [ 14.09.2008, 16:59 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Das folgende Vorgehen ist nicht wirklich ernst gemeint. Ich vermute das er deutlich mehr Zeit braucht als das einfache Zählen der Bits.

Man könnte den Zweierlogarithmus der Zahl (im Byte/Word/DWord) errechnen [FC122 B_LOG_X].

Und von dem Ergebnis (also dem Exponent) die Wurzel ziehen.

Ist das Ergebnis der Wurzelberechnung eine Ganzzahl so ist maximal ein Bit high.

Ansonsten fällt mir dazu nur ein: Nutz einfach den Bitsum FC.

Gruß vom
Freidenker

Autor:  Freidenker [ 14.09.2008, 17:23 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Sorry, ich bin es nochmal. Meine Antwort war leider falsch.

Wenn der Zweierlogarithmus eine Ganzzahl ausspuckt ist maximal 1 Bit high.

Das mit der Wurzel war ein geistiger Ausrutscher. :oops:

Autor:  FvE [ 17.09.2008, 10:40 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

smart_chris hat geschrieben:
Stimmt da hab ich was falsch verstanden.


Einsicht ist der erste Weg zur Besserung :mrgreen:

Gruss
FvE

Autor:  Manuel [ 28.09.2008, 15:11 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Hallo,

sehe ich das richtig dass es keinen einfachen Weg gibt?

Manuel

Autor:  Freidenker [ 28.09.2008, 19:19 ]
Betreff des Beitrags:  Re: mehr als 1 Bit high?

Manuel hat geschrieben:
Hallo,

sehe ich das richtig dass es keinen einfachen Weg gibt?

Manuel


Ich lass mich ja gerne eines besseren belehren... aber ich denke das man am Zählen nicht vorbei kommt (bzw. es wird nicht einfacher).

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/