Zaman/Sayılar
Bit Düzeyinde İşlemler
Belirli bir genişlikteki (8/16/32/64 bit) tamsayılar üzerinde AND/OR/XOR/NAND/NOR/XNOR/NOT ve kaydırma işlemleri, herhangi bir sayı sisteminde.
(kaydırma bit sayısı, ondalık sayı)
Bitwise operations work directly on a number's individual bits rather than its value as a whole — the basis for permission flags, network protocols, and low-level optimization.
How to use it
- Enter one or two numbers in any base (binary, hex, decimal) and pick an operation (AND, OR, XOR, NAND, NOR, XNOR, NOT, or a shift).
- Pick a bit width (8/16/32/64 bits) — it affects how NOT and shifts behave at the number's boundaries.
- The result is shown instantly in several number bases for easy comparison.
Common uses
- Working with permission or setting flags packed into a single number (file system access rights, for example).
- Debugging a network protocol or binary format where fields are packed at the individual-bit level.
- A teaching example for understanding binary number representation and operations on it.
Things to keep in mind
The result of NOT and shifts depends on the chosen bit width — the same number gives a different result at 8-bit versus 32-bit width because of the different number of bits involved.
XOR is often used to toggle a flag — applying XOR twice with the same value returns the original.
Bu araç hakkında makale: Bit düzeyi işlemler: AND, OR ve XOR bit seviyesinde nasıl çalışır
Sıkça sorulan sorular
AND, OR, XOR, NAND, NOR, XNOR ve NOT arasındaki fark nedir?
AND yalnızca her iki bit de 1 olduğunda 1 verir, OR en az biri 1 olduğunda 1 verir ve XOR bitler farklı olduğunda 1 verir. NAND/NOR/XNOR bunların olumsuzlarıdır ve NOT tek bir işlenendeki her biti tersine çevirir.
Bir sayının bit genişliği ve işareti nasıl ele alınır?
8/16/32/64 bitlik bir genişlik seçin — işlemler ve kaydırmalar bu aralıkta gerçekleşir. Negatif sayılar ikinin tümleyeni ile temsil edilir, bu yüzden ondalık gösterime alışkınsanız NOT veya bir kaydırmanın sonucu beklenmedik görünebilir.
Sola kaydırma ile sağa kaydırma arasındaki fark nedir?
Sola kaydırma (<<) sağa sıfır ekler, bu da etkili bir şekilde kaydırma miktarının kuvvetine 2 ile çarpar. Sağa kaydırma mantıksal (sola sıfır ekler) veya aritmetik (işaret bitini korur) olabilir — tür seçilen moda bağlıdır.
"if (a & b == c)" gibi bir ifade neden beklendiği gibi çalışmaz?
Çoğu dilde == karşılaştırma operatörü, bit düzeyi & operatöründen daha yüksek önceliğe sahiptir, bu yüzden ifade genellikle yazarın istediği gibi değil "a & (b == c)" olarak değerlendirilir. Bu tuzaktan kaçınmak için bit düzeyi işlemleri her zaman açık parantez içine alın.
Ayrı boolean değişkenler yerine neden bit bayrakları kullanılır?
Tek bir sayıya paketlenmiş bir bayrak seti daha kompakt şekilde saklanır ve iletilir (örneğin ağ protokollerinde veya dosya formatlarında), ve belirli bir bayrağı AND/OR/XOR ile kontrol etmek veya değiştirmek tek bir hızlı işlemdir.