MathSwap

ushort değerindeki bayt sırasını değiştirin.

ushort  MathSwap(
   ushort  value      // değer
   );

Parametreler

value

[in]  Bayt sırasını değiştirmek için değer.

Geri dönüş değeri

Ters bayt sırası ile ushort değeri.

MathSwap

uint değerindeki bayt sırasını değiştirin.

uint  MathSwap(
   uint   value      // değer
   );

Parametreler

value

[in]  Bayt sırasını değiştirmek için değer.

Geri dönüş değeri

Ters bayt sırası ile uint değeri.

MathSwap

ulong değerindeki bayt sırasını değiştirin.

ulong  MathSwap(
   ulong  value      // değer
   );

Parametreler

value

[in]  Bayt sırasını değiştirmek için değer.

Geri dönüş değeri

Ters bayt sırası ile ulong değeri.

 

Örnek:

#property script_show_inputs
 
input ulong  InpLongValue  =  1;    // Buraya herhangi bir ulong değeri girin
input uint   InpIntValue   =  2;    // Buraya herhangi bir uint değeri girin
input ushort InpShortValue =  3;    // Buraya herhangi bir ushort değeri girin
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 
//--- girilen ve MathSwap() tarafından dönüştürülen değerleri ondalık ve ikili gösterim olarak günlüğe yazdır
   Print(ValueDescription(InpLongValue));
   Print(ValueDescription(InpIntValue));
   Print(ValueDescription(InpShortValue));
   /*
  sonuç:
   ulong value1
   ulong value72057594037927936 using MathSwap()
   binary ulong value0000000000000000000000000000000000000000000000000000000000000001
   binary ulong value0000000100000000000000000000000000000000000000000000000000000000 using MathSwap()
   
   uint value2
   uint value33554432 using MathSwap()
   binary uint value00000000000000000000000000000010
   binary uint value00000010000000000000000000000000 using MathSwap()
   
   ushort value3
   ushort value768 using MathSwap()
   binary ushort value0000000000000011
   binary ushort value0000001100000000 using MathSwap()
   */
  }
//+------------------------------------------------------------------+
//| Değişken değerlerini açıklayan metni geri döndür                 |
//+------------------------------------------------------------------+
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_namextype_nameMathSwap(x), type_namenum_bitsbin_xtype_namenum_bitsbin_swap_x));
  }
//+------------------------------------------------------------------+
//| Sayının ikili gösterimini dizge olarak geri döndür         |
//+------------------------------------------------------------------+
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 <=sizei++)
      res += !((x<<i)& mask) ? "0" : "1";
   return res;
  }

Ayrıca bakınız

Ağ fonksiyonları, SocketRead, SocketSend, SocketTlsRead, SocketTlsReadAvailable, SocketTlsSend