MQL5'te OOP hakkında sorular - sayfa 92

 

Vladimir Simakov :

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

EVET!

hayatımda değişkenin değerlerinin gerekli kaydırma ile ayarlanabileceğini tahmin edemezdim!

serin! teşekkür etmek!

 

Toplam alan tasarrufu ile:

 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 :

Ve hala böyle bir soru ... ve sendika yoluyla herhangi bir şekilde 12 bit int almak mümkün mü? ... nasıl özü değil)))

Not: ideal olarak 9-15 bit int , işareti vurgulamak sorun değil, yani. unsigned int kullanabilirsiniz (son sürümlerde MQL unsigned int öğrendi, uint yerine kullanabilirsiniz)

 

İşo:

 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 :

Ve hala böyle bir soru ... ve sendika yoluyla herhangi bir şekilde 12 bit int almak mümkün mü? ... nasıl özü değil)))

Not: ideal olarak 9-15 bit int , işareti vurgulamak sorun değil, yani. unsigned int kullanabilirsiniz (son sürümlerde MQL unsigned int öğrendi, uint yerine kullanabilirsiniz)

Muhtemelen değil. Şimdiye kadar, yarım trabyte değişkenler mevcut değil.

 
Dmitry Fedoseev :

Muhtemelen değil. Şimdiye kadar, yarım trabyte değişkenler mevcut değil.

neden? bir maske ile gerekli bitleri kodlayın ve seçin, herhangi bir sayıda bit kullanılabilir

ama sorun dağılmış değil;)

UPD: böyle bir soru googled, en azından okunacak bir şey var https://stackoverflow.com/questions/29529979/10-or-12-bit-field-data-type-in-c

 
Igor Makanu :

neden? bir maske ile gerekli bitleri kodlayın ve seçin, herhangi bir sayıda bit kullanılabilir

ama sorun dağılmış değil;)

O zaman sendikasız yapabilirsiniz.

 
Dmitry Fedoseev :

O zaman sendikasız yapabilirsiniz.

evet, birlik ile kolaylıktan daha fazla sorun olacak

 

Derleyicinin temel sınıftaki yöntemi neden kullandığı hakkında bir fikriniz var mı?

Dosyalar:
Code_it.mq5  2 kb
 
Nelson Wanyama :

Derleyicinin temel sınıftaki yöntemi neden kullandığı hakkında bir fikriniz var mı?

Sanal bir işlevi geçersiz kılmadığınız için aşırı yükleme kullanıyorsunuz.