| |
|
|
Michael Wodrich | Binärzahlen in Form gebracht. Zeigt auch Teile der Binärzahl (nur untere Bits). KompilierenMarkierenSeparierenMyBin$
by Michael Wodrich
Funktioniert "ähnlich" wie @Bin$.
Die Unterschiede:
Die Funktion arbeitet die Bits mit einer Bitmaske ab und kann
so auch führende Nullen zurückgeben.
ABER: Es wird nicht geprüft, ob auch alle relevanten Stellen
abgearbeitet wurden! Gibt man also MyBin$(%11111,4) an, dann
wird das 5.Bit einfach nicht mit ausgegeben.
Das ist aber gewollt: es wird dann nur der untere Bereich der
Bits ausgegeben (ließe sich mit Angabe eines Startwertes noch ausbauen).
Der Programmierer sollte den Zahlenbereich also vorher abtesten.
Der 3. Parameter ist optional und kann die Ausgabe mit Leerzeichen gruppieren.
Proc MyBin$
If %PCount > 2
Parameters Wert&,Laenge%,Grp%
Else
Parameters Wert&,Laenge%
Declare Grp%
Grp% = 64
EndIf
Declare Ergebnis$,Maske&,GrpCnt%
Clear Ergebnis$
Maske& = 1
GrpCnt% = Grp%
While Laenge%
Dec Laenge%
Dec GrpCnt%
Ergebnis$ = @If(Wert& & Maske&,"1","0") + Ergebnis$
If (GrpCnt% = 0) and (Laenge% > 0)
Ergebnis$ = Chr$(32) + Ergebnis$
GrpCnt% = Grp%
EndIf
Maske& = Maske& << 1
EndWhile
Return Ergebnis$
EndProc
Cls
Print "1010.0101:",MyBin$(%10100101,4)
Print "1010.0101:",MyBin$(%10100101,8)
Print "1010.0101:",MyBin$(%10100101,12,4);"
"
Print "$FDFD:",MyBin$($FDFD,32,8)
Print "$FDFD:",MyBin$($FDFD,32,4)
WaitKey
href='./../../function-references/xprofan/end/'>End
|
|
|
| Programmieren, das spannendste Detektivspiel der Welt. | 14.12.2005 ▲ |
|
|
|