İlk Değerini Özetle: başka bir ikili modelle eşleştirilecek tüm 2-bit değerlerini bulun ve sonra onları
Aslında 2-bit değerlerinin kompakt dizi ikili değeri vardır. (Yani, her 2 bit, ikili değer 0, 1, 2 veya 3'ü temsil eder.) Yani, örneğin 0, 3, 1, 2 00110110 olur. Bu ikili dizede, tek umurumda olan 3'ler (ya da dönüşümlü olarak, bitleri çevirebilirim ve eğer cevabınızı kolaylaştırırsa, sadece 0'lara dikkat edebilirim). Diğer tüm sayılar alakasız (birazdan gireceğimiz için).İkinci değer:
aynı şekilde temsil aynı zamanda 2-bit değerlerinin bir sıkıştırılmış dizi ikinci bir ikili değere sahiptir. Birinci Değere denk bir uzunluğa sahiptir.
Matematik:
Ben ilk Değerinden bir 3 ile aynı konuma sahip İkinci Değer 2 bitlik sayıların toplamını istiyorum. Ben başka deyişle, eğer: o bir "11 vardı sadece onlar vardı çünkü
First: 11000011
Second: 01111101
Sonra cevabım olurdu "2"(Ben, ilk sayı ve birlikte "İkinci" dan son numarayı eklendi "İlk Değer onları eşleşti.) mümkün olduğunca (bir GPU veya bir x86 mimarisine ya olduğunca az saat döngülerinde bunu yapmak istiyor
). Bununla birlikte, genellikle bir algoritma arıyorum, bir assembler çözümü değil. Her sayıdan bir anda iki bitin maskelenmesinden ve birkaç döngüyü çalıştırdığından daha hızlı bir yolu var mı?
11 için '4' yerine '3' mi demek istediniz? –
Evet, teşekkürler! :-) –