Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Ve hala böyle bir soru ... ve sendika yoluyla herhangi bir şekilde 12 bit int almak mümkün mü? ... nasıl olduğu 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)
genel olarak, yine anlamadım ... yardım et ! )))
Bunun gibi gerekli bitlerden bazılarını seçebileceğimi düşündüm:
sayının işaretini belirlemek için şimdi en önemli bitin nerede bulunacağı ... Bilmiyorum, yani. ideal olarak bir fonksiyon olmalıdır
ideal olarak, bu tür yapıları kullanmak için genellikle bir şablona ihtiyaç vardır:
genel olarak, yine anlamadım ... yardım et ! )))
Bunun gibi gerekli bitlerden bazılarını seçebileceğimi düşündüm:
sayının işaretini belirlemek için şimdi en önemli bitin nerede bulunacağı ... Bilmiyorum, yani. ideal olarak bir fonksiyon olmalıdır
ideal olarak, bu tür yapıları kullanmak için bir şablona ihtiyaç vardır:
Bak. Maske, sayının önemli bir parçasıdır, yani int için biraz daha kaydırmak gerekir, çünkü işaretinizin en önemli biti anlamına gelir. <<konum saçmalık. Sizin gibi, bu maskeyi kullanarak int'nin yüksek bitlerini alacaksınız, ancak düşük bitlere ihtiyacınız var))).
İşaretli tamsayılar için, önemli kısmı ayrı ayrı, en anlamlı biti (işareti) ayrı olarak almanız, en anlamlı biti istediğiniz konuma kaydırmanız ve bitsel VEYA birleştirmeniz gerekir. int->4 bit için örnek
int ortalama4=0xFFFFFFFF>>29
int işareti16=1<<31
int işareti4=1<<3
Şimdi int->int4 ellerinize dikkat edin:
1. int val var
2. int işareti=(val&sign16)>>28
Burada sayımızın işaretini aldık ve ihtiyacımız olan pozisyona kaydırdık (int4'teki en yüksek bit)
3.mean3val=val&mean4
Burada maskeden en az önemli üç bit (önemli kısım) elde ettik, diğer her şey kesildi.
4. int çıkış=işaret|ortalama3değer
Ve burada işareti önemli kısımla birleştirdik. Şimdi elimizde 4'ün bir işaret olduğu ve bit 4'ün bir işaret olduğu ve bit 1.3'ün önemli bir parça olduğu en az anlamlı 4 bitimiz var, 4'ten eski tüm bitler 0 değerine sahip. Değer aralığı -8..7'dir. Ve evet, eğer 8 girdiyse, o zaman 7 olmayacak, ancak her şey basitçe kesileceği için 0 olacak.
Gerekli sayıda bit ile kaydırmak ve maske için 1 kullanmak daha kolaydır.En azından daha nettir.
İşaret tanımı: (a>>31)&1 - 1 ise eksi, 0 ise artı.
Kafa kafaya bir çözümle int'den önemli bitleri çıkarabilirim, ancak evrensel bir çözüm yapabilirim ... ama yapamam! ((((
nasıl ve nerede istediğimi açıklamamış olma ihtimali yüksek
4 int / uint bayt var ve optimize edicide paketlemek istediğim veri kümem var
Diyelim ki bu şekilde paketlemeyi başardım:
ne türlere ihtiyacım var int_XXX Henüz düşünmedim
ama bunun gibi bir kod biçiminde kullanılabilirliğe sahip olmak istiyorum
Ne, henüz kimse hatamı bulamadı mı?))))
Öneririm: uint tüm maskeler olmalıdır)))
Kafa kafaya bir çözümle int'den önemli bitleri çıkarabilirim, ancak evrensel bir çözüm yapamam ... ama yapamam! ((((
nasıl ve nerede istediğimi açıklamamış olma ihtimali yüksek
4 int / uint bayt var ve optimize edicide paketlemek istediğim veri kümem var
Diyelim ki bu şekilde paketlemeyi başardım:
ne türlere ihtiyacım var int_XXX Henüz düşünmedim
ama bunun gibi bir kod biçiminde kullanılabilirliğe sahip olmak istiyorum
o - girinti (bit), l - uzunluk (bit sayısı), eklenecek değer, r - nereye eklenir
Ama gerçekten kontrol etmedi.
Sanal bir işlevi geçersiz kılmadığınız için aşırı yükleme kullanıyorsunuz.
Burada bir şeyler açıkça yanlış.
Burada bir şeyler açıkça yanlış.
Bir yöntemi şablon yapın ve ona erişin
Bir yöntemi şablon yapın ve ona erişin
Evet, bu bir hack!!!
ps: Bu hayat hack'i düzeltildiğinde güncellemeyle çalışmayı bırakacak bir şey yazmanın +1 yolu
Evet, bu bir hack!!!
ps: Bu hayat hack'i düzeltildiğinde güncellemeyle çalışmayı bırakacak bir şey yazmanın +1 yolu