Mehre Konstanten zu einer machen

Für allgemeine Fragen zur Programmierung mit PureBasic.
PBNeuling
Beiträge: 4
Registriert: 25.11.2004 00:57

Mehre Konstanten zu einer machen

Beitrag 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..
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag von Lars »

Beschreib dein Problem doch mal genauer, ich kann mir da jetzt nichts
vorschlagen und ich denke, ich bin damit nicht alleine :wink:
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
DarkDragon
Beiträge: 6291
Registriert: 29.08.2004 08:37
Computerausstattung: Hoffentlich bald keine mehr
Kontaktdaten:

Beitrag von DarkDragon »

Ich denke er meint sowas:

Code: Alles auswählen

#Konstante1 = 1
#Konstante2 = 2
#Konstante3 = #Konstante1 | #Konstante2
Debug #Konstante1
Debug #Konstante2
Debug #Konstante3
Angenommen es gäbe einen Algorithmus mit imaginärer Laufzeit O(i * n), dann gilt O((i * n)^2) = O(-1 * n^2) d.h. wenn man diesen Algorithmus verschachtelt ist er fertig, bevor er angefangen hat.
Benutzeravatar
Ynnus
Beiträge: 855
Registriert: 29.08.2004 01:37
Kontaktdaten:

Beitrag 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.
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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.
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Benutzeravatar
helpy
Beiträge: 636
Registriert: 29.08.2004 13:29

Beitrag 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
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8807
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken

Beitrag 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
Benutzeravatar
helpy
Beiträge: 636
Registriert: 29.08.2004 13:29

Beitrag 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
Benutzeravatar
Lars
Beiträge: 347
Registriert: 31.08.2004 23:53
Wohnort: Shanghai
Kontaktdaten:

Beitrag 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
Lars
The only problem with troubleshooting is, that sometimes the trouble shoots back.
P4 2,6Ghz, 512MB RAM, GeForce 6200, WinXP Pro SP2, PB V3.94
Antworten