Perguntas sobre OOP em MQL5 - página 92

 

Vladimir Simakov:

int CSetting::sign=1<<31;
int CSetting::_sign=1<<11;
int CSetting::mean=0xFFFFFFFF>>21;

SIM!

Eu nunca teria adivinhado que os valores variáveis podem ser definidos pelo turno necessário!

legal! obrigado!

 

Com completa economia de espaço:

void OnStart()
{

   int a=2; // 0,1,2
   int b=7; // 0,1,2
   int c=7; // 0,1,2,3,4,5,6,7
   int d=12345;  
   
   int v=a+b*3+c*(3*8)+d*(3*8*8);
   
   d=v/(3*8*8);
   v%=(3*8*8);
   
   c=v/(3*8);
   v%=(3*8);   
   
   b=v/3;
   a%=3;     
   
   Alert(a," ",b," ",c," ",d);
  
} 
 
Vladimir Simakov:

outra pergunta... Existe alguma forma de se conseguir um int 12 bit via união? não importa como ))))

ZS: idealmente uma int 9-15 bit , o sinal não é um problema, ou seja, é possível int sem assinatura (na última construção MQL aprendeuint sem assinatura, é possível usar ao invés de uint )

 

Icho:

void OnStart()
{
   int a=2; // 0,1,2
   int b=3; // 0,1,2
   int c=7; // 0,1,2,3,4,5,6,7
   int d=12345;  

   int v=(d<<8)|(c<<5)|(b<<2)|a;
   
   a=v&3;
   v>>=2;
   b=v&7;
   v>>=3;   
   c=v&7;  
   v>>=3;      
   d=v;
   
   Alert(a," ",b," ",c," ",d);

}
 
Igor Makanu:

outra pergunta... Existe alguma forma de se conseguir um int 12 bit via união? não importa como ))))

SZY: 9-15 bit int idealmente , o sinal a alocar não é um problema, ou seja, é possível int sem assinatura (no último buildds MQL aprendeuint sem assinatura, é possível em vez de uint to use )

Provavelmente não. Ainda não há variáveis de meio byte.

 
Dmitry Fedoseev:

Provavelmente não. Ainda não há meio byte de variáveis.

Por que não? codificar e mascarar os bits necessários, qualquer número de bits pode ser usado

mas o problema não é estragar tudo ;)

UPD: pesquisando no Google tal pergunta, ao menos leia o que eles aconselhamhttps://stackoverflow.com/questions/29529979/10-or-12-bit-field-data-type-in-c

 
Igor Makanu:

Por que não? codificar e mascarar os bits necessários, qualquer número de bits pode ser usado

mas o problema não é estragar tudo ;)

Então você também pode passar sem união.

 
Dmitry Fedoseev:

Então você pode passar sem o sindicato, também.

sim, a união é mais um problema do que uma conveniência

 

Alguma idéia por que o compilador usa o método na classe de base?

Arquivos anexados:
Code_it.mq5  2 kb
 
Nelson Wanyama:

Alguma idéia por que o compilador usa o método na classe de base?

Como você não está sobrepondo-se a uma função virtual, você está usando sobrecarga.