Picproje Elektronik Sitesi

ENDÜSTRiYEL OTOMASYON => Kontrol Teorisi - Matematiği => Konuyu başlatan: z - 31 Ocak 2021, 07:04:17

Başlık: Ikili sistemde 3' bolmenin kolay yolu
Gönderen: z - 31 Ocak 2021, 07:04:17
Islemcinin bolme komutu yok.

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

Başlık: Ynt: Ikili sistemde 3' bolmenin kolay yolu
Gönderen: erpay - 31 Ocak 2021, 08:54:12
Kalan 3'den küçük olana kadar sürekli bölünen sayıdan 3 çıkarıp bölme işlemi sayılabilir.
Başlık: Ynt: Ikili sistemde 3' bolmenin kolay yolu
Gönderen: z - 31 Ocak 2021, 09:44:17
Yahu ne yaptin. Cok daha kisa zaman alacak bolme algoritmalari var ama ben 3'e ozgu kolay  bir bolme yontemi arayisi icindeyim.
Başlık: Ynt: Ikili sistemde 3' bolmenin kolay yolu
Gönderen: mufitsozen - 31 Ocak 2021, 10:12:57
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.
}