JavaScript Bitsel


İçindekiler

    İçindekiler tablosunu göster


JavaScript Bitsel Operatörler

&

Mantık VE. Her iki bit de 1 ise her biti 1'e ayarlar

|

Mantık VEYA. İki bitten biri 1 ise her biti 1'e ayarlar

^

Mantık XOR. İki bitten yalnızca biri 1 ise her biti 1'e ayarlar

~

Mantık DEĞİL. Tüm bitleri tersine çevirir

<<

Sıfır doldurma sola kaydırma. Sıfırları sağdan içeri iterek sola kaydırır ve en soldaki bitlerin düşmesine izin verir

>>

İmzalı sağa kaydırma. En soldaki bitin kopyalarını soldan içeri iterek sağa kaydırır ve en sağdaki bitlerin kopyalarını içeri alır. düşmek

>>>

Sıfır doldurma sağa kaydırma. Sıfırları soldan içeri iterek sağa kaydırır ve en sağdaki bitlerin düşmesine izin verir

Örnekler

Operation Result Same as Result
5 & 1 1 0101 & 0001  0001
5 | 1 5 0101 | 0001  0101
~ 5 10  ~0101  1010
5 << 1 10 0101 << 1  1010
5 ^ 1 4 0101 ^ 0001  0100
5 >> 1 2 0101 >> 1  0010
5 >>> 1 2 0101 >>> 1  0010

JavaScript 32 bit Bitsel İşlenenler Kullanır

JavaScript sayıları 64 bitlik kayan noktalı sayılar olarak saklar, ancak tümü bitseldir işlemler 32 bitlik ikili sayılar üzerinde gerçekleştirilir.

Bitsel bir işlem gerçekleştirilmeden önce, JavaScript sayıları 32 bit'e dönüştürür imzalı tamsayılar

Bitsel işlem gerçekleştirildikten sonra sonuç tekrar 64 bitlik JavaScript'e dönüştürülür. sayılar.

Yukarıdaki örneklerde 4 bitlik işaretsiz ikili sayılar kullanılmaktadır. Bu nedenle ~ 5, 10 değerini döndürür.

JavaScript 32 bit işaretli tamsayılar kullandığından 10 döndürmez, -6 döndürür.

0000000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5=-6)

İşaretli bir tamsayı eksi işareti olarak en soldaki biti kullanır.



JavaScript Bitsel VE

Bir bit çifti üzerinde bitsel AND işlemi gerçekleştirildiğinde, her iki bit de 1 ise 1 değerini döndürür.

0 & 0

0

0 & 1

0

1 & 0

0

1 & 1

1

1111 & 0000

0000

1111 & 0001

0001

1111 & 0010

0010

1111 & 0100

0100


JavaScript Bitsel VEYA

Bir bit çifti üzerinde bit düzeyinde VEYA işlemi gerçekleştirildiğinde, bitlerden biri 1 ise 1 değerini döndürür:

0 | 0

0

0 | 1

1 

1 | 0

1

1 | 1

1

1111 | 0000

1111

1111 | 0001

1111

1111 | 0010

1111

1111 | 0100

1111


JavaScript Bitsel XOR

Bir bit çifti üzerinde bit düzeyinde bir XOR gerçekleştirildiğinde, bitler farklıysa 1 değerini döndürür:

0 ^ 0

0

0 ^ 1

1 

1 ^ 0

1

1 ^ 1

0 

1111 ^ 0000

1111

1111 ^ 0001

1110

1111 ^ 0010

1101

1111 ^ 0100

1011


JavaScript Bitsel VE (&)

Bit bazında VE yalnızca her iki bit de 1 ise 1 değerini döndürür:

5

00000000000000000000000000000101

1

00000000000000000000000000000001

5 & 1

0000000000000000000000000000000001 (1)

Örnek

let x = 5 & 1;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Bitwise AND</h1>
<h2>The &amp; Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 & 1;
</script>

</body>
</html> 

JavaScript Bitsel VEYA (|)

Bitlerden biri 1 ise, Bitsel VEYA 1 değerini döndürür:

5

00000000000000000000000000000101

1

00000000000000000000000000000001

5 | 1

000000000000000000000000000000101 (5)

Örnek

let x = 5 | 1;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Bitwise OR</h1>
<h2>The | Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 | 1;
</script>

</body>
</html>

JavaScript Bitsel XOR (^)

Bitler farklıysa, bitsel XOR 1 değerini döndürür:

5

00000000000000000000000000000101

1

00000000000000000000000000000001

5 ^ 1

0000000000000000000000000000000100 (4)

Örnek

let x = 5 ^ 1;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Bitwise XOR</h1>
<h2>The ^ Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 ^ 1;
</script>

</body>
</html>

JavaScript Bitsel DEĞİL (~)

5

00000000000000000000000000000101

~5

1111111111111111111111111111010 (-6)

Örnek

let x = ~5;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Bitwise NOT</h1>
<h2>The ~ Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = ~ 5;
</script>

</body>
</html>

JavaScript (Sıfır Doldurma) Bit Bazında Sola Kaydırma (<<)

Bu sıfır dolgulu sola kaydırmadır. Sağdan bir veya daha fazla sıfır biti içeri itilir, ve en soldaki bitler düşüyor:

5

00000000000000000000000000000101

5 << 1

0000000000000000000000000000001010 (10)

Örnek

let x = 5 << 1;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Bitwise Left</h1>
<h2>The &lt;&lt; Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 << 1;
</script>

</body>
</html>

JavaScript (İşaret Koruma) Bitsel Sağa Kaydırma (>>)

Bu sağa kaymayı koruyan bir işarettir. En soldaki bitin kopyaları itilir soldan girer ve en sağdaki bitler düşer:

-5

11111111111111111111111111111011

-5 >> 1

1111111111111111111111111111101 (-3)

Örnek

let x = -5 >> 1;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Signed Bitwise Right</h1>
<h2>The &gt;&gt; Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = -5 >> 1;
</script>

</body>
</html>

JavaScript (Sıfır Doldurma) Sağa Kaydırma (>>>)

Bu sıfır doldurma sağa kaydırmadır. Bir veya daha fazla sıfır bit soldan içeri itilir, ve en sağdaki bitler düşüyor:

5

00000000000000000000000000000101

5 >>> 1

0000000000000000000000000000000010 (2)

Örnek

let x = 5 >>> 1;

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Unsigned Bitwise Right</h1>
<h2>The &gt;&gt;&gt; Operator</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = 5 >>> 1;
</script>

</body>
</html>

İkili Sayılar

Yalnızca bir bit kümesine sahip ikili sayıların anlaşılması kolaydır:

00000000000000000000000000000001

1

00000000000000000000000000000010

2

00000000000000000000000000000100

4

00000000000000000000000000001000

8

00000000000000000000000000010000

16

00000000000000000000000000100000

32

00000000000000000000000001000000

64

Birkaç bitin daha ayarlanması ikili modeli ortaya çıkarır:

00000000000000000000000000000101

5 (4 + 1)

00000000000000000000000000001101

13 (8 + 4 + 1)

00000000000000000000000000101101

45 (32 + 8 + 4 + 1)

JavaScript ikili sayıları ikinin tamamlayıcısı biçiminde saklanır.

Bu, negatif bir sayının, sayı artı 1'in bit düzeyinde DEĞİL olduğu anlamına gelir:

00000000000000000000000000000101

5

11111111111111111111111111111011

-5

00000000000000000000000000000110

6

11111111111111111111111111111010

-6

00000000000000000000000000101000

40

11111111111111111111111111011000

-40

Şaka :

Dünyada yalnızca 10 tür insan vardır: İkili sistemi anlayanlar ve anlamayanlar.


Ondalık Sayıyı İkili Sayıya Dönüştürme

Örnek

function dec2bin(dec){
  return (dec >>> 0).toString(2);
}

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h1>JavaScript Convert Decimal to Binary</h1>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = dec2bin(-5);
function dec2bin(dec){
  return (dec >>> 0).toString(2);
}
</script>

</body>
</html>

İkili Sayıyı Ondalık Sayıya Dönüştürme

Örnek

function bin2dec(bin){
    return parseInt(bin, 2).toString(10);
}

Kendiniz Deneyin →

<!DOCTYPE html>
<html>
<body>

<h2>JavaScript Convert Binary to Decimal</h2>

<p id="demo"></p>

<script>
document.getElementById("demo").innerHTML = bin2dec(101);
function bin2dec(bin){
  return parseInt(bin, 2).toString(10);
}
</script>

</body>
</html>