Bit manipülasyon kodunun önemi nedir?

Son 3 yıldır programlama yapıyorum ve biraz manipülasyon kodu yazmak için çaba göstermedim. Kurumsal yazılım üzerinde çalıştım, diğer geliştiricilerin de yazdığını görmedim.

Hesaplamaları yapmak için matematiksel işlemleri kullanmak yerine biraz manipülasyon kodu yazmak iyi bir uygulamadır mı?

2

4 cevap

Az ya da çok, eğer bit manipülasyonundan yararlanacak bir tür yazılımla çalışmıyorsanız, muhtemelen bunları kullanmak zorunda değilsiniz. Aslında, birçok yerde kodları okumak zorlaştırabilir ve bir neden olmadığı sürece gerçekten kullanılmamalıdır.

Bununla birlikte, eğer ilgileniyorsanız, doğru uygulama göz önüne alındığında faydalı bir araçtır. Örneğin, ikisinin gücü ile çarpılan bir kodunuz varsa, bitleri sola kaydırmak daha hızlı olabilir. Çarpma kodunun performansa bir darboğaz olduğunu belirlerseniz bu önemli olabilir.

Gerçekleştirilmesi gereken önemli bir gerçek, bazı derleyicilerin sizin için bu optimizasyon türlerinden bazılarını (ör. i = i * 2 satırını sola kayma haline getirme) yapacağıdır.

2
katma

Bu duruma bağlı. Örneğin, sağa kayma ve sola kaydırma işlemleri genellikle bölen operatörden daha hızlıdır. Optimizasyona ihtiyacınız varsa ve bit işlemleri diğer yaklaşımdan daha hızlıysa, bit işlemlerini kullanmalısınız. Ama erken doğurma. çünkü bu yapmak için iyi bir şey değil. Optimizasyona ihtiyacınız olduğundan eminseniz ve bit operatörlerini kullanmak, önceki yaklaşımdan daha hızlıdır, o zaman bunları kullanmalısınız.

1
katma
Genel bir tavsiye olarak kötü. Derleyiciler genellikle tek bir vardiyanın çalışmadığı sıralama dahil olmak üzere daha iyi bölünme/çarpma püf noktalarını bilirler.
katma yazar Sebastian Mach, kaynak
Ancak derleyiciler genellikle sizin için yaparlar.
katma yazar Dave Newton, kaynak

Bu biraz garip bir soru! Hayır, kurumsal kodun muhtemelen bit manipülasyonu yapma olasılığı yoktur. Genellikle Java/.NET vb. İle yazılır ve çeşitli sistemler arasında yüksek seviyedeki mesajların iletilmesi ve iletilmesi ile ilgilidir.

Ancak, C veya C ++ veya assembler kullanarak veya akıllı düşük seviye matematik kullanan sürücüler yazıyorsanız, bit manipülasyonu sizin için muhtemelen daha önemli ve yararlıdır. Şüphesiz, zaman ne zaman gelirse onu ne zaman kullanacağınızı bileceksiniz!

1
katma

TL; DR: Hayır. Matematik operasyonları için matematik operatörlerini kullanın.

1
katma