Bitsel operatörlerin kullanımı uygundur ve hızlı kodun kabarmasına neden olabilir. Bunların ne olduğunu ve nasıl kullanılacağını öğrenin.

Bitsel operatörler, ikili düzeyde hareket eden operatörlerdir. Genellikle yürütmek için çok hızlıdırlar ve tipik olarak iki işlenen üzerinde hareket ederler.

İkili sayıları işlemek, kodu optimize etmek, verileri sıkıştırmak ve grafik veya oyun programlama tekniklerini uygulamak için bitsel operatörleri kullanabilirsiniz. Diğer birçok programlama dili gibi, JavaScript de bitsel işlemler için mükemmel desteğe sahiptir.

Operatörler Nedir?

Çoğu programlama dili, yorumlayıcıya belirli bir matematiksel, ilişkisel veya mantıksal işlemi gerçekleştirmesini söyleyen bir sembol olan "operatör" kavramını kullanır.

Çok var farklı JavaScript operatörü türleri "+" gibi standart matematik işleçleri gibi görünenlerden iki değeri karşılaştıran işleçlere kadar farkında olmalısınız. Bitsel operatörler, ikili sayılarla ilgilenen özel bir kümedir.

Bitsel AND (&) Operatörü

JavaScript bit düzeyinde VE (

instagram viewer
&) operatörü, karşılık gelen iki biti karşılaştırır ikili işlenenler—yalnızca 0 ve 1 içeren sayılar. Her bir giriş biti çifti için karşılık gelen çıkış biti, eğer her iki giriş biti de "1" veya "0" ise "1"dir.

İşte bitsel AND operatörünün sözdizimi:

bir & b

Bu örnekte, A Ve B bitsel işlemi gerçekleştirdiğiniz işlenenlerdir.

Bitsel AND operatörünün çalışma şekli şöyledir:

  1. AND işlemi, karşılık gelen her bir bit çifti için geçerlidir. A Ve B sağdan sola doğru.
  2. Her iki bit de 1 ise, sonuç 1'dir. Bitlerden biri 0 ise, sonuç 0'dır.
  3. Sonuç, her bitin karşılık gelen bitler üzerindeki AND işleminin sonucunu temsil ettiği yeni bir sayıdır. A Ve B.

Örneğin:

izin vermek bir = 50; // 00110010
izin vermek b = 100; // 01100100

izin vermek sonuç = a & b; // 00100000

konsol.log (sonuç); // 32

Yukarıdaki örnekte, A ondalık basamakta 50'dir, ikili sayı 00110010'a eşdeğerdir ve B ondalık basamakta 100'dür, ikili sayı 01100100'e eşdeğerdir. AND operatörü, karşılık gelen her bir bit çiftini sağdan sola karşılaştırır ve ondalık basamakta 32 olan sonuçtaki 00100000 ikili sayısını üretir.

Bitsel OR (|) Operatörü

bit düzeyinde VEYA (|) operatörü, iki işlenenin karşılık gelen bitlerini karşılaştırır ve bitlerden biri veya her ikisi de "1" ise "1" ve her iki bit "0" ise "0" döndürür.

İşte bitsel OR operatörünün sözdizimi:

bir | B

Nerede A Ve B işlemin işlenenleridir.

Bitsel OR (|) operatörü, bitsel AND operatörüyle aynı şekilde çalışır. Tek fark, VEYA işlecinin bitlerden "herhangi biri" "1" ise "1" ve "her iki" bit "0" ise "0" döndürmesidir.

Örneğin:

izin vermek bir = 50; // 00110010
izin vermek b = 100; // 01100100

izin vermek sonuç = bir | B; // 01110110

konsol.log (sonuç); // 118

Yukarıdaki örnekte, bit düzeyinde OR operatörü, her bir bit çiftini sağdan sola karşılaştırır (yani, 0 | 0 = 0, 0 | 1 = 1, 1 | 1 = 1, ve benzeri). Ortaya çıkan ikili sayı, ondalık olarak 118 olan 01110110'dur.

Bitsel XOR (^) Operatörü

Bitsel XOR (^) operatörü, iki işlenenin karşılık gelen bitlerini karşılaştırır ve işlenenlerden biri (her ikisi de değil) "1" ise "1" ve işlenenlerin her ikisi de "1" veya "0" ise "0" döndürür.

İşte bitsel XOR operatörünün sözdizimi:

bir ^ b

Nerede A Ve B işlemin işlenenleridir.

Bitsel XOR operatörü, bitsel OR ve AND operatörleriyle aynı şekilde çalışır. Tek fark, işlenenlerin "her ikisi de değil" "1" ise "1" ve işlenenlerin "her ikisi" de "1" veya "0" ise "0" döndürmesidir.

Örneğin:

izin vermek bir = 50; // 00110010
izin vermek b = 100; // 01100100

izin vermek sonuç = a ^ b; // 01010110

konsol.log (sonuç); // 86

Yukarıdaki örnekte, XOR operatörü her bir bit çiftini sağdan sola karşılaştırır (yani, 0 ^ 0 = 0, 0 ^ 1 = 1, 1 ^ 1 = 0, ve benzeri). Ortaya çıkan ikili sayı, ondalık olarak 86 olan 01010110'dur.

Bitsel NOT (~) Operatörü

bit düzeyinde DEĞİL (~) operatörü, tüm bitlerini ters çevirerek tek bir tam sayı üzerinde çalışan tekli bir operatördür. Yani her “0” biti “1”e ve her “1” biti “0”a değiştirir.

Bit düzeyinde NOT operatörünün sözdizimi şöyledir:

~c

Nerede C işlenendir.

Bitsel DEĞİL operatörü, işaret bitleri de dahil olmak üzere bir işlenenin tüm bitlerini ters çevirerek çalışır.

Örneğin:

izin vermek ç = 10; // 00001010
izin vermek d = -10; // 11110110

konsol.log(~c); // 11110101
konsol.log(~d); // 00001001

Yukarıdaki örnekte, DEĞİL operatörü tüm bitleri ters çevirir (yani, 01, 10, vb.), işaret bitleri dahil.

Sola Kaydırma (<

Sola kaydırma operatörü verilen bir sayının bitlerini sola kaydırır. Operatör iki işlenen alır: kaydırılacak sayı ve kaydırılacak bit sayısı.

İşte sola kaydırma operatörünün sözdizimi:

bir << b

Nerede A sola kaydırma operatörünün işlenenidir ve B operatörün işleneni kaydıracağı bit sayısıdır.

Sola kaydırma operatörü, bir işlenenin her bir bitini belirtilen konum sayısı kadar sola kaydırarak ve sola kaydırılan fazla bitleri atarak çalışır.

Örneğin:

izin vermek bir = 50; // 00110010
izin vermek b = 2;

izin vermek sonuç = bir << b; // 11001000

konsol.log (sonuç); // 200

Yukarıdaki örnekte, sola kaydırma operatörü ikili 00110010'un ondalık basamağı 50'yi iki basamak kaydırdı. Ortaya çıkan ikili değer, ondalık olarak 200 olan 11001000'dir.

İşaret Yayma Sağa Kaydırma (>>) Operatörü

İşareti yayan sağa kaydırma (>>) orijinal sayının işaretini korurken bir sayının bitlerini sağa kaydırır. Operatör iki işlenen alır: kaydırılacak sayı ve kaydırılacak bit sayısı.

İşareti ilerleten sağa kaydırma işlecinin sözdizimi şöyledir:

bir >> b

Nerede A sağa kaydırma operatörünün işlenenidir ve B operatörün işleneni kaydıracağı bit sayısıdır.

İşareti ilerleten sağa kaydırma operatörü, sola kaydırma operatörüne benzer şekilde çalışır; çalışma modundaki tek fark, sağa kaydırmanın işareti korumasıdır.

Örneğin:

izin vermek bir = -50; // 11001110
izin vermek b = 2;

izin vermek sonuç = a >> b; // 11110011

konsol.log (sonuç); // -13

Yukarıdaki örnekte, sağa kaydırma operatörü ondalık basamağı -50'yi (11001110) iki boşluk sağa kaydırarak ondalık basamağı -13'ü (11110011) verdi.

İmzasız Sağa Kaydırma (>>>) Operatörü

İşaretsiz sağa kaydırma (>>>) operatörü, bir sayının bitlerini belirtilen sayıda konum kadar sağa kaydırır ve soldaki boş alanları sıfırlarla doldurur. Operatör, sağa kaydırdığı fazla bitleri atar.

İşaretsiz sağa kaydırma operatörünün sözdizimi şöyledir:

bir >>> b

Nerede A sağa kaydırma operatörünün işlenenidir ve B operatörün işleneni kaydıracağı bit sayısıdır.

İşaretsiz sağa kaydırma operatörü, sağa kaydırmaya benzer şekilde çalışır. Ancak, sağa kaydırma operatörünün aksine (>>), kaydırırken bir sayının işaretini korumaz. Bunun yerine, sayıyı işaretsiz bir tamsayı olarak ele alır ve en soldaki biti sıfırla doldurur.

Örneğin:

izin vermek bir = -5; // 11111111 11111111 11111111 11111011
izin vermek b = 2;

izin vermek sonuç = a >>> b; // 00111111 11111111 11111111 11111110

konsol.log (sonuç); // 1073741822

Bu örnekte, işaretsiz sağa kaydırma operatörü "-5"i iki boşluk sağa kaydırarak işareti etkili bir şekilde kaldırdı ve ondalık sayı "1073741822" ile sonuçlandı.

Bitsel Operatörlerin Uygulamaları

İkili sayılardaki ayrı bitleri manipüle ederek, bitsel operatörler, geleneksel aritmetik işlemlerle başka türlü elde edilmesi zor veya imkansız olan karmaşık işlevsellik yaratabilir.

Bitsel operatörlerin nasıl kullanılacağını anlamak, daha verimli ve performanslı web uygulamaları oluşturmanıza yardımcı olabilir.