Bitwert zu Einzelne True/False Werten umwandeln
Übersicht

![]() |
FirstdeathmakerBetreff: Bitwert zu Einzelne True/False Werten umwandeln |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ihr kennt das bestimmt, auch bei manchen Befehlen von BB kommt es vor das man nur einen Wert übergibt, der sich danach richtet welche Optionen man aktivieren möchte, z.B. entityfx:
Effekt = Effekt, das zugewiesen werden soll: +1=leuchtend +2=Vertexfarbe statt Pinselfarbe benutzen +4=flache Schattierung +8=Nebeleffekt deaktivieren +16=schaltet Backface Culling aus +32=VertexAlpha aktivieren (ab v1.82) Meine Frage ist jetzt: Wie kann man schnell gerausfinden welche Werte jetzt true oder false sein sollen? Also wenn ich eine Zuordnung habe: 1=J 2=K 4=Z 8=SZ 16=T und ich jetzt den Wert 18 übergebe, wie kann ich dann nachher schnell überprüfen das die 2 und die 16 da drin stecken, ohne z.B. das ganze Ding zubtrahieren zu müssen: T=floor(wert/16) if T wert=wert-16 SZ=floor(wert/8) if SZ wert=wert-8 u.s.w., oder gibts da keine einfachere Möglichkeit? |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
- Zuletzt bearbeitet von Firstdeathmaker am So, Mai 29, 2005 15:35, insgesamt einmal bearbeitet
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
du kannst die zahl doch einfach in binary umwandeln. das ganze sind ja nichts als bitflags.
wandele es mit bin() um und dann lies es als string aus und gehe die liste aufsteigend vom wert 0 bis 128 durch |
||
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Man kann auch direkt Bitoperationen nehmen (siehe shl, shr sowie die verwendung von AND / OR / NOT in diesem Zusammenhang) | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Artemis |
![]() Antworten mit Zitat ![]() |
---|---|---|
so:BlitzBasic: [AUSKLAPPEN] If dievriablemitdenwerten And 1 Then ...;also wenn der bit für 1 gesetzt ist dann.. |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
@ Jonas: Es funktioniert, nur, könntest du so nett sein und mir erklären warum das funktioniert? Ich verstehe nicht warum AND so funktionert, ich dachte immer nur, das man mit AND nur zwei logische Aussagen zu einer Verknüfpfen kann:
variable1=1 variable2=1 if variable1 and variable2 then.... Warum kann man auf einmal damit abfragen, das an einer bestimmten Position ein Bit gesetzt ist? |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Weil die "alten Blitzbasic" (BB3D / BB+) AND für logische und bit operationen benutzen. Oben wird es dabei als Bitoperation genutzt und nicht als logisches AND | ||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Ok, Danke, ich habs nun verstanden.
(Für alle die es noch nicht verstanden haben: http://www.oreilly.de/catalog/...r/ch11.pdf, ich hab ein wenig gegoogelt um ne Erklärung zu bekommen). |
||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
hitokiri |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
echt ? hm... das hättense in der command reference aber auch deutlicher erklären können ![]() |
||
![]() |
Firstdeathmaker |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dort habe ich es ja nicht auf Anhieb kapiert. Manchmal ist es so, dass man erst etwas nachschlägt, es nicht versteht, weitere Erklärungen sucht, es versteht, und einem dann auf einmal auch die erste Referenz etwas sagt. | ||
www.illusion-games.de
Space War 3 | Space Race | Galaxy on Fire | Razoon Gewinner des BCC #57 User posted image |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group