MathSwap
Ändert die Reihenfolge der Bytes des Typs ushort.
ushort MathSwap( ushort value ); |
Parameter
Wert
[in] Wert, dessen Bytefolge geändert werden soll.
Rückgabewert
MathSwap
Ändert die Reihenfolge der Bytes des Typs uint.
uint MathSwap( uint value ); |
Parameter
Wert
[in] Wert, dessen Bytefolge geändert werden soll.
Rückgabewert
MathSwap
Ändert die Reihenfolge der Bytes des Typs ulong.
ulong MathSwap( ulong value ); |
Parameter
Wert
[in] Wert, dessen Bytefolge geändert werden soll.
Rückgabewert
Beispiel:
#property script_show_inputs input ulong InpLongValue = 1; // Eingabe des Wertes vom Typ ulong input uint InpIntValue = 2; // Eingabe des Wertes vom Typ uint input ushort InpShortValue = 3; // Eingabe des Wertes vom Typ ushort //+------------------------------------------------------------------+ //| Skript Programm Start Funktion | //+------------------------------------------------------------------+ void OnStart() { //--- Drucken der von MathSwap() eingegebenen und umgewandelten Werte in dezimaler und binärer Darstellung in das Journal Print(ValueDescription(InpLongValue)); Print(ValueDescription(InpIntValue)); Print(ValueDescription(InpShortValue)); /* Ergebnis: ulong value: 1 ulong value: 72057594037927936 using MathSwap() binary ulong value: 0000000000000000000000000000000000000000000000000000000000000001 binary ulong value: 0000000100000000000000000000000000000000000000000000000000000000 using MathSwap() uint value: 2 uint value: 33554432 using MathSwap() binary uint value: 00000000000000000000000000000010 binary uint value: 00000010000000000000000000000000 using MathSwap() ushort value: 3 ushort value: 768 using MathSwap() binary ushort value: 0000000000000011 binary ushort value: 0000001100000000 using MathSwap() */ } //+------------------------------------------------------------------+ //| Rückgabe des Textes zur Beschreibung der Variablenwerte | //+------------------------------------------------------------------+ template <typename T> string ValueDescription(T x) { int num_bits = sizeof(T)*8; string type_name = typename(T); string bin_x = NumberToBinaryString(x); string bin_swap_x = NumberToBinaryString(MathSwap(x)); return(StringFormat("%s value: %lld\n%s value: %lld using MathSwap()\nbinary %s value: %0*s\nbinary %s value: %0*s using MathSwap()\n", type_name, x, type_name, MathSwap(x), type_name, num_bits, bin_x, type_name, num_bits, bin_swap_x)); } //+------------------------------------------------------------------+ //| Rückgabe der binären Darstellung einer Zahl als Zeichenkette | //+------------------------------------------------------------------+ template <typename T> string NumberToBinaryString(T x) { string res = ""; int i = -1; uchar size = sizeof(T)*8-1; ulong mask = (ulong)1<<size; while(!((x<<++i)& mask)); for(; i <=size; i++) res += !((x<<i)& mask) ? "0" : "1"; return res; } |
Siehe auch
Netzwerkfunktionen, SocketRead, SocketSend, SocketTlsRead, SocketTlsReadAvailable, SocketTlsSend