Вопросы по ООП в MQL5 - страница 92

 

Vladimir Simakov:

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

ДА!

в жизни не догадался бы, что значения переменной то можно задать необходимым сдвигом !

круто! спасибо!

 

С полной экономией места:

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:

а такой еще вопрос... а можно каким-нибудь способом 12 битный int получить через union ? ... не суть через как )))

ЗЫ: в идеале 9-15 битный int , знак выделить не проблема, т.е. можно unsigned int   (в последних билдах MQL научился unsigned int , можно вместо uint использовать )

 

Исчо:

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:

а такой еще вопрос... а можно каким-нибудь способом 12 битный int получить через union ? ... не суть через как )))

ЗЫ: в идеале 9-15 битный int , знак выделить не проблема, т.е. можно unsigned int   (в последних билдах MQL научился unsigned int , можно вместо uint использовать )

Наверно нет. Пока полутрабайтных переменных не существует.

 
Dmitry Fedoseev:

Наверно нет. Пока полутрабайтных переменных не существует.

почему нет? закодировать и маской выделять необходимые биты, любое количество бит можно использовать

но проблема не накосячить ;)

UPD: гуглится такой вопрос, почитать есть хоть что советуют https://stackoverflow.com/questions/29529979/10-or-12-bit-field-data-type-in-c

 
Igor Makanu:

почему нет? закодировать и маской выделять необходимые биты, любое количество бит можно использовать

но проблема не накосячить ;)

Тогда и без юниона можно обойтись.

 
Dmitry Fedoseev:

Тогда и без юниона можно обойтись.

да, c union больше проблем чем удобства будет

 

Any idea why the compiler uses the method in the base-class?

Файлы:
Code_it.mq5  2 kb
 
Nelson Wanyama:

Any idea why the compiler uses the method in the base-class?

Because you are not overriding a virtual function, you are using overloading.


Причина обращения: