Domino 9 und frühere Versionen > ND7: Entwicklung

Binäres und in Formelsprache

<< < (2/2)

pram:
Ich hab da auch noch was um eine Zahl in einen Bitstring umzuwandeln.

--- Code: ---z := Eingabe;
t := "";
@for(i := 2147483648; i >= 1; i := i / 2; t:= t + @If(!@IsNumber(z);"-";z >= i;@Do(z := z-i; "1");"0"));
t

--- Ende Code ---
In die Variable "z" kommt die umzuwandelnde Zahl, in "t" steht nach Durchlauf der @For-Schleife ein 32-Bit String.
Am Besten als berechnetes Feld in die Maske rein machen, Vergleiche in den Hide-Formeln kann man dann bequem mit

--- Code: ---@Like(t;"_____________________________1__")

--- Ende Code ---
machen, ob ein bestimmtes Bit gesetzt (bzw mit 0 nicht gesetzt) ist.


Gruß
Roland

/edit: Erklärung

--- Code: ---z:= Zahl
i := 2^31

Solange i (i durchläuft alle 2er-Potenzen)
  prüfe ob z eine Zahl ist, wenn nein gib "-" aus (Fehlerbehandlung)
  prüfe ob z >= i ist (dann ist das entsprechende Bit gesetzt)
    und ziehe z ab und gib "1" aus
    ansonsten gib "0" aus
  i := i / 2 (nächste 2er Potenz)
next

Obige Schleife wird nun 32 mal ausgeführt und gibt für jedes Bit eine 1 oder 0  (bzw. "-" für ungültig) aus.

--- Ende Code ---

MaxMuster:
Hallo Roland,

es braucht ein wenig die Formel zu verstehen - zumindest für mich.

Aber das ist ist ziemlich genau das was ich gesucht habe.

Vielen Dank, Roger

PS: Kann man den Thread als beantwortet markieren?

Keydins:
Symbol des 1. Beitrages auf 'Daumen hoch' ändern.

Gruß
Dirk

Navigation

[0] Themen-Index

[*] Vorherige Sete

Zur normalen Ansicht wechseln