Seite 1 von 1

Mehre Konstanten zu einer machen

Verfasst: 30.11.2004 16:56
von PBNeuling
Hallo

Ich habe mal wieder ein Problem, wie kann ich mehre Konstanten
zu einer machen. würde mich auf eine Antwort sehr freuen bis dann.
de Andy..

Verfasst: 30.11.2004 18:57
von Lars
Beschreib dein Problem doch mal genauer, ich kann mir da jetzt nichts
vorschlagen und ich denke, ich bin damit nicht alleine :wink:

Verfasst: 30.11.2004 19:02
von DarkDragon
Ich denke er meint sowas:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 2
#Konstante3 = #Konstante1 | #Konstante2
Debug #Konstante1
Debug #Konstante2
Debug #Konstante3

Verfasst: 30.11.2004 19:03
von Ynnus

Code: Alles auswählen

#k1 = 1
#k2 = 2
#k3 = #k1 + #k2
Dann wären die Konstanten k1 und k2 in der 3ten Zusammengefügt.

Verfasst: 30.11.2004 19:33
von Lars
DarkDragon hat geschrieben:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 2
#Konstante3 = #Konstante1 | #Konstante2
So weit geht das gut, aber ich will jetzt einfach einem Missverständniss
vorbeugen:

[c]#Konstante3[/c] müsste jetzt 4 sein und nicht, wie manche meinen
könnten, 3. Wenn man sich das ganze binär vorstellt, ist das ziemlich
logisch, dass die Zahlen Potenzen von 2 sein müssen.

Verfasst: 30.11.2004 22:06
von helpy
Lars hat geschrieben:
DarkDragon hat geschrieben:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 2
#Konstante3 = #Konstante1 | #Konstante2
So weit geht das gut, aber ich will jetzt einfach einem Missverständniss
vorbeugen:

[c]#Konstante3[/c] müsste jetzt 4 sein und nicht, wie manche meinen
könnten, 3. Wenn man sich das ganze binär vorstellt, ist das ziemlich
logisch, dass die Zahlen Potenzen von 2 sein müssen.
Falsch!

dez. 1 => bin. 0001
dez. 2 => bin. 0010
bin. 0001 | bin 0010 = bin. 0011 (=> dez. 3)

cu, helpy

Verfasst: 30.11.2004 22:34
von NicTheQuick
:lol:

Ich glaube, Lars hatte jetzt nicht daran gedacht, dass die verknüpfte Konstante schon den Namen [c]#Konstante3[/c] hatte.
Er meint damit aber, dass man bei der Vergabe der Konstanten nur exponential mit der Basis 2 vorgehen kann:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 2
#Konstante3 = 4
#Konstante4 = 8
...
#Konstante10 = 512
Oder wie ich es gerne schreibe:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 1 << 1
#Konstante3 = 1 << 2
#Konstante4 = 1 << 3
...
#Konstante10 = 1 << 9

Verfasst: 30.11.2004 23:40
von helpy
NicTheQuick hat geschrieben::lol:

Ich glaube, Lars hatte jetzt nicht daran gedacht, dass die verknüpfte Konstante schon den Namen [c]#Konstante3[/c] hatte.
Er meint damit aber, dass man bei der Vergabe der Konstanten nur exponential mit der Basis 2 vorgehen kann:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 2
#Konstante3 = 4
#Konstante4 = 8
...
#Konstante10 = 512
Nein! Es stimmt nicht, dass man nur so vorgehen kann. Das hängt ganz von der Art der Verwendung der Konstanten ab!

cu, helpy

Verfasst: 30.11.2004 23:50
von Lars
NicTheQuick hat geschrieben:Ich glaube, Lars hatte jetzt nicht daran gedacht, dass die verknüpfte Konstante schon den Namen [c]#Konstante3[/c] hatte.
Dem hätte ich dann nichts mehr hinzuzufügen, blöde
Konstantenbenennung <)

helpy hat geschrieben:Es stimmt nicht, dass man nur so vorgehen kann.
Natürlich. Aber sinnvolle Einzelzustände müssen halt 2er Potenzen
sein. Werte wie 3 können dann halt 1 und 2 kombiniert darstellen (siehe
code).

Code: Alles auswählen

#State1 = 1
#State2 = 2
#State3 = 4

#NewState1 = #State1 | #State2  ;NewState = 3

Debug #NewState1

#NewState2 = #NewState1 | #State3

Debug #NewState2