Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
eine weitere Frage... Gibt es irgendeine Möglichkeit, einen 12-Bit-Int über Union zu erhalten ... egal wie ))))
SZY: 9-15 bit int idealerweise, Vorzeichen zuweisen kein Problem, d.h. es ist möglich unsigned int (in letzten Builds von MQL gelerntunsigned int, ist es möglich, anstelle von uint zu verwenden)
Ich verstehe das nicht ... Hilfe!)))
Ich habe herausgefunden, dass ich auf diese Weise einige benötigte Bits zuweisen kann:
wo das höchstwertige Bit jetzt wäre , um das Vorzeichen der Zahl zu bestimmen... weiß nicht, d.h. idealerweise sollte es eine Funktion sein
Idealerweise sollte es eine Vorlage sein, um solche Strukturen überhaupt zu verwenden:
Ich verstehe es also wieder nicht... Hilfe!)))
Ich habe herausgefunden, dass ich einige der Bits, die ich brauche, zuweisen kann:
wo das höchste Bit jetzt wäre , um das Vorzeichen der Zahl zu bestimmen... weiß nicht, d.h. idealerweise sollte es eine Funktion sein
Idealerweise sollte es eine Vorlage sein, um solche Strukturen überhaupt zu verwenden:
Siehe. Die Maske ist der signifikante Teil der Zahl, d.h. bei int muss man ein bisschen weiter schieben, da das hohe Bit das Vorzeichen ist. <<Pos ist eine Sauerei. Wie in Ihrem Fall werden Sie die hohen Bits von int durch diese Maske nehmen, während Sie die niedrigen Bits benötigen))).
Bei vorzeichenbehafteten ganzen Zahlen müssen Sie den signifikanten Teil und das hohe Bit (Vorzeichen) getrennt ermitteln, dann das hohe Bit an die gewünschte Position verschieben und mit bitweisem ODER kombinieren. Beispiel für int-> 4 Bits
int mean4=0xFFFFFFFF>>29
int sign16=1<<31
int vorzeichen4=1<3
Achten Sie jetzt auf Ihre Hände: int->int4:
1. wir haben int val
2. int sign=(val&sign16)>>28.
Hier haben wir das Vorzeichen unserer Zahl genommen und es an die rechte Position verschoben (das höchstwertige Bit in int4)
3. mean3val=val&mean4
Hier haben wir die drei niedrigstwertigen Bits (sinnvoller Teil) durch eine Maske erhalten, der Rest ist abgeschnitten.
4. int out=sign|mean3val
Und hier haben wir das Zeichen mit dem signifikanten Teil kombiniert. Jetzt haben wir 4 niederwertige Bits, wobei Bit 4 das Vorzeichen ist und die Bits 1 bis 3 den signifikanten Teil darstellen, alle Bits über 4 haben den Wert 0. Der Wertebereich ist -8...7. Und ja, wenn 8 eingegeben wird, gibt es keine 7 und es wird 0 sein, da alles einfach abgeschnitten wird.
Es ist einfacher, um die richtige Anzahl von Bits zu verschieben und 1 für die Maske zu verwenden. Zumindest ist es deutlicher.
Vorzeichendefinition: (a>>31)&1 - wenn 1, dann minus, wenn 0, dann plus.
Ich kann mit einer "Kopf-an-Kopf"-Lösung signifikante Bits aus int machen, aber ich kann keine Universallösung machen... Ich kann nicht! (((
Es ist sehr wahrscheinlich, dass ich nicht erklärt habe, wie und wohin ich gehen will
es gibt 4 Bytes int / uint, und es gibt mein Dataset, das ich im Optimierer entpacken möchte
Nehmen wir an, es ist mir gelungen, es so zu verpacken:
welche Typen ich int_XXX brauche, habe ich noch nicht abgeschätzt
aber ich möchte die Benutzerfreundlichkeit in Form dieses Codes haben
Hat noch niemand meinen Fehler gefunden? ))))
Tipp: uint sollten alle Masken sein)))
Ich kann mit einer "Head-on"-Lösung signifikante Bits aus int machen, aber ich kann keine Universallösung machen... Ich kann nicht! (((
Es ist sehr wahrscheinlich, dass ich nicht erklärt habe, wie und wohin ich gehen will
es gibt 4 Bytes int / uint, und es gibt mein Dataset, das ich im Optimierer entpacken möchte
Nehmen wir an, es ist mir gelungen, es so zu verpacken:
welche Typen ich int_XXX brauche, habe ich noch nicht abgeschätzt
aber ich möchte eine Nutzbarkeit in Form des folgenden Codes haben
o - Einzug (Bits), l - Länge (Anzahl der Bits), zu addierender Wert, r - wo zu addieren
Aber ich habe es nicht getestet.
Da Sie eine virtuelle Funktion nicht überschreiben, verwenden Sie die Überladung.
Hier ist eindeutig etwas nicht in Ordnung
Hier ist offensichtlich etwas nicht in Ordnung.
Machen Sie die Methode zu einer Vorlage und rufen Sie sie auf
Machen Sie die Methode zu einer Vorlage und rufen Sie sie auf
Das ist ein Laifhack!!!
ps: +1 Weise, etwas zu schreiben, das gerade aufhört, mit der Aktualisierung zu arbeiten, wenn sie diesen loafhack zwicken
Das ist ein Schlupfloch!!!
ps: +1 Weise, etwas zu schreiben, das gerade aufhört, mit der Aktualisierung zu arbeiten, wenn sie dieses loafhack zwicken