Anregungen und Vorschläge zu PROFAN
Hier können Vorschläge für künftige PROFAN-Versionen, Ausgestaltung der PROFAN-Seiten und -Foren, etc. gemacht werden.

| Suchen
| Zurück zur Übersicht

Autor | Thema: Bitweises Nicht
Dominik Reichl
| Datum:17.11.01 15:30 (Dominik.Reichl@swp-net.de) |
Hallo gibt es in Profan eigentlich einen Operator für ein bitweises/binäres Nicht????? Vielen Dank im Vorraus Dominik
Sven Schmidts
| Datum:19.11.01 08:23 (schmidts@flat2serv.de) |
Auszug aus der Hilfe, wenn nach "Bitweise" gesucht wird: " ACHTUNG: logisch bedeutet, daß das Ergebnis wahr (1) oder falsch (0) ist, bei binären Funktionen werden die Werte bitweise verknüpft: 2 OR 4 ergibt 1, weil mindestens einer der Werte <> 0 (= wahr) ist @OR(2,4) ergibt 6: %0010 OR %0100 = %0110 " Mfg. Sven Schmidts
Dominik Reichl
| Datum:19.11.01 20:13 (Dominik.Reichl@swp-net.de) |
????????????????????????????????? ????????????????????????????????? ????????????????????????????????? Ich fragte nicht nach irgendetwas bitweisem sondern nach einem: Bitweises "Nicht!" ("Nicht" im Sinne von Operator!) Aus 0xAAAA muss zum Beispiel 0x5555 werden. In C++ heisst der Operator auch "Ones Complement Operator" oder "bitwise complement" und dort schreibt man das meistens so: y = ~y; In Profan gibts ja jede Menge bitweise arbeitende Operatoren wie Und, Oder, u.s.w. Aber ein "bitweises Nicht" gibt es nicht? Mfg Domink
Bernhard Künzel
| Datum:19.11.01 22:16 (b.kuenzel@chello.at) |
Hallo Dominik, Bitweise "NICHT!" ist auch in Profan möglich!!!! versuche es mit Print Hex$(XOR($AAAA,$FFFF)) beim zweiten Parameter müssen alle Bits gesetzt sein MFG Bernhard
Dominik Reichl
| Datum:20.11.01 18:57 (Dominik.Reichl@swp-net.de) |
Hallo Vielen Dank Bernhard, so gehts tatsächlich auch. Aber einen "direkten" Operator gibt es nicht? Danke Dominik
Jörg Sellmeyer
| Datum:20.11.01 20:26 (joerse@gmx.de) |
Hallo, Du könntest Dir mit Def 'ne eigene Funktion basteln: Def BitNot(Hex$(XOR(&(1),&(2)))) 'Wenn ich's richtig verstanden habe Gruß Jörg
Bernhard Künzel
| Datum:20.11.01 21:31 (b.kuenzel@chello.at) |
Hallo Dominik, Es geht mit einer Funktion Def OCO(1) XOR(&(1),Val(Add$("$",MkStr$("F",Len(Hex$(&(1))))))) Beispiel: Print OCO(11184810) Print Hex$(OCO(11184810)) Print Hex$(OCO(Val("$AAAAAA"))) Die Anzahl der notwendigen gesetzten Bits wird für die Maske in der Funktion automatisch berechnet. MFG Bernhard
Bernhard Künzel
| Datum: 27.11.01 15:20 (b.kuenzel@chello.at) |
Hallo Dominik, hatte bei der Funktion leider einen großen Gedankenfehler, da ich die Maske mit Hex$ erzeugte funktioniert das nur bei einer geraden Anzahl Bits, die Maske muß mit Bit$ erzeugt werden, dann funktioniert sie bei jeder Anzal von übergebenen Bits. Hier die neue gültige Funktion. Def OCO(1) XOR(&(1),Val(Add$("%",MkStr$("1",Len(BIN$(&(1))))))) Test: Print OCO(19) 'Übergabe mit ungerader Anzahl an Bits (5) 19=10011 ->Ergebnis 12=1100 Print OCO(53) 'Übergabe mit gerader Anzahl an Bits (6) 53=110101 ->Ergebnis 10=1010 MFG Bernhard

| Zurück zur Übersicht

| Ein kostenloses WebMart Forum WebMart Homepage Tools kostenlos |