Preguntas sobre POO en MQL5 - página 92

 

Vladimir Simakov:

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

¡SI!

¡Nunca me hubiera imaginado que los valores de las variables pueden ser fijados por el turno necesario !

¡Genial! ¡Gracias!

 

Con total economía de espacio:

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:

otra pregunta... ¿Hay alguna manera de obtener un int de 12 bits a través de la unión? no importa cómo ))))

ZS: idealmente un int de 9-15 bits, el signo no es un problema, es decir, es posible unsigned int (en las últimas construcciones MQL ha aprendidounsigned int, es posible utilizar en lugar 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:

otra pregunta... ¿Hay alguna manera de obtener un int de 12 bits a través de la unión? no importa cómo ))))

SZY: 9-15 bit int idealmente, el signo para asignar no es un problema, es decir, es posible unsigned int (en las últimas construcciones MQL ha aprendidounsigned int, es posible en lugar de uint a utilizar )

Probablemente no. Todavía no hay variables de medio byte.

 
Dmitry Fedoseev:

Probablemente no. Todavía no hay medios bytes de variables.

¿Por qué no? Codificar y enmascarar los bits necesarios, se puede utilizar cualquier número de bits

pero el problema es no estropearlo ;)

UPD: buscando en Google tal pregunta, al menos lee lo que aconsejanhttps://stackoverflow.com/questions/29529979/10-or-12-bit-field-data-type-in-c

 
Igor Makanu:

¿Por qué no? codificar y enmascarar los bits necesarios, se puede utilizar cualquier número de bits

pero el problema es no estropearlo ;)

Entonces también puedes prescindir del sindicato.

 
Dmitry Fedoseev:

Entonces también puedes prescindir del sindicato.

sí, la unión es más un problema que una conveniencia

[Eliminado]  

¿Alguna idea de por qué el compilador utiliza el método en la clase base?

Archivos adjuntos:
Code_it.mq5  2 kb
 
Nelson Wanyama:

¿Alguna idea de por qué el compilador utiliza el método en la clase base?

Como no está sobrescribiendo una función virtual, está utilizando la sobrecarga.