Ikili sistemde 3' bolmenin kolay yolu

Başlatan z, 31 Ocak 2021, 07:04:17

z

Islemcinin bolme komutu yok.

2'li sistemde 3'e bolmenin kolay bir yolu varmi?

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

erpay

Kalan 3'den küçük olana kadar sürekli bölünen sayıdan 3 çıkarıp bölme işlemi sayılabilir.

z

Yahu ne yaptin. Cok daha kisa zaman alacak bolme algoritmalari var ama ben 3'e ozgu kolay  bir bolme yontemi arayisi icindeyim.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

mufitsozen

int divs3(int n) {
   int q, r;
   n = n + (n>>31 & 2); // Add 2 if n < 0. 
   q = (n >> 2) + (n >> 4); // q = n*0.0101 (approx). 
   q = q + (q >> 4); // q = n*0.01010101. 
   q = q + (q >> 8); 
   q = q + (q >> 16); 
   r = n - q*3; // 0 <= r <= 14.

   return q + (11*r >> 5); // Returning q + r/3. 
// return q + (5*(r + 1) >> 4); // Alternative 1.
// return q + ((r + 5 + (r << 2)) >> 4);// Alternative 2.
}
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.