JS Eğitimi

ANA SAYFA JS Giriş JS Nereye JS Çıktı JS İfadeleri JS Sözdizimi JS Yorumları JS Değişkenleri JS Let JS Sabiti JS Operatörleri JS Aritmetiği JS Ataması JS Veri Türleri JS Fonksiyonları JS Nesneleri JS Etkinlikleri JS Dizeleri JS Dize Yöntemleri JS Dizisi Arama JS Dize Şablonları JS Numaraları JS Numarası Yöntemleri JS Dizileri JS Dizi Yöntemleri JS Dizi Sıralaması JS Dizi Yineleme JS Dizi Sabiti JS Tarihleri JS Tarih Formatları JS Tarih Alma Yöntemleri JS Tarih Ayar Yöntemleri JS Matematik JS Rastgele JS Booleanları JS Karşılaştırmaları JS Koşulları JS Anahtarı JS Döngüsü İçin JS Döngüsü İçin JS Döngüsü JS Döngüsü JS Arası JS Yinelenebilirler JS Setleri JS Haritaları JS Türü JS Tipi Dönüşüm JS Bitsel JS Normal İfade JS Hataları JS Kapsamı JS Kaldırma JS Sıkı Modu Bu Anahtar Kelimeyi JS JS Ok İşlevi JS Sınıfları JS JSON JS Hata Ayıklama JS Stil Kılavuzu JS En İyi Uygulamaları JS Hataları JS Performansı JS Ayrılmış Kelimeler

JS Sürümleri

JS Sürümleri JS 2009 (ES5) JS 2015 (ES6) JS 2016 JS 2017 JS 2018 JS IE / Kenar JS Geçmişi

JS Nesneleri

Nesne Tanımları Nesne Özellikleri Nesne Yöntemleri Nesne Görüntüleme Nesne Erişimcileri Nesne Oluşturucuları Nesne Prototipleri Nesne Yinelenebilirler Nesne Kümeleri Nesne Haritaları Nesne Referansı

JS Fonksiyonları

Fonksiyon Tanımları Fonksiyon Parametreleri Fonksiyon Çağırma İşlev Çağrısı İşlev Uygula Fonksiyon Kapanışları

JS Sınıfları

Sınıf Tanıtımı Sınıf Kalıtımı Sınıf Statik

JS Zaman uyumsuz

JS Geri Aramaları JS Asenkron JS Sözleri JS Zaman uyumsuz/Bekliyor

JS HTML DOM'si

DOM Tanıtımı DOM Yöntemleri DOM Belgesi DOM Öğeleri DOM HTML'si DOM Formları DOM CSS'si DOM Animasyonları DOM Olayları DOM Olay Dinleyicisi DOM Gezinme DOM Düğümleri DOM Koleksiyonları DOM Düğüm Listeleri

JS Tarayıcı Malzeme Listesi

JS Penceresi JS Ekranı JS Konumu JS Geçmişi JS Navigatörü JS Açılır Pencere Uyarısı JS Zamanlaması JS Çerezleri

JS Web API'leri

Web API'sine Giriş Web Formları API'sı Web Geçmişi API'si Web Depolama API'sı Web Çalışanı API'si Web Getirme API'sı Web Coğrafi Konum API'sı

JS AJAX

AJAX'a Giriş AJAX XMLHttp AJAX İsteği AJAX Yanıtı AJAX XML Dosyası AJAX PHP AJAX ASP AJAX Veritabanı AJAX Uygulamaları AJAX Örnekleri

JS JSON

JSON'a Giriş JSON Sözdizimi JSON'a karşı XML JSON Veri Türleri JSON Ayrıştırma JSON Stringify JSON Nesneleri JSON Dizileri JSON Sunucusu JSON PHP JSON HTML'si JSON JSONP

JS ve jQuery

jQuery Seçiciler jQuery HTML'si jQuery CSS'si jQuery DOM'si

JS Grafikleri

JS Grafikleri JS Tuval JS Konusu JS Chart.js JS Google Grafiği JS D3.js

JS Örnekleri

JS Örnekleri JS HTML DOM'si JS HTML Girişi JS HTML Nesneleri JS HTML Olayları JS Tarayıcı JS Editörü JS Alıştırmaları JS Testi JS Sertifikası

JS Referansları

JavaScript Nesneleri HTML DOM Nesneleri


JavaScript Bitsel İşlemler


JavaScript Bitsel Operatörler

Operator Name Description
& AND Sets each bit to 1 if both bits are 1
| OR Sets each bit to 1 if one of two bits is 1
^ XOR Sets each bit to 1 if only one of two bits is 1
~ NOT Inverts all the bits
<< Zero fill left shift Shifts left by pushing zeros in from the right and let the leftmost bits fall off
>> Signed right shift Shifts right by pushing copies of the leftmost bit in from the left, and let the rightmost bits fall off
>>> Zero fill right shift Shifts right by pushing zeros in from the left, and let the rightmost bits fall off

Ö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 Bit Yönlü İşlenenler Kullanır

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

Bit düzeyinde bir işlem gerçekleştirilmeden önce JavaScript, sayıları 32 bit işaretli tam sayılara dönüştürür.

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

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

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

0000000000000000000000000000101 (5)

11111111111111111111111111111010 (~5 = -6)

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



bit düzeyinde VE

Bir çift bit üzerinde bit düzeyinde AND gerçekleştirildiğinde, her iki bit de 1 ise 1 döndürür.

Bir bit örnek:
OperasyonSonuç
0 & 00
0 & 10
1 & 00
1 ve 11
4 bitlik örnek:
OperasyonSonuç
1111 & 00000000
1111 & 00010001
1111 & 00100010
1111 & 01000100

Bit düzeyinde VEYA

Bir çift bit üzerinde bit düzeyinde OR gerçekleştirildiğinde, bitlerden biri 1 ise 1 döndürür:

Bir bit örnek:
OperasyonSonuç
0 | 00
0 | 1
1 | 01
1 | 11
4 bitlik örnek:
OperasyonSonuç
1111 | 00001111
1111 | 00011111
1111 | 00101111
1111 | 01001111

Bitsel XOR

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

Bir bit örnek:
OperasyonSonuç
0 ^ 00
0 ^ 1
1 ^ 01
1 ^ 1
4 bitlik örnek:
OperasyonSonuç
1111 ^ 00001111
1111 ^ 00011110
1111 ^ 00101101
1111 ^ 01001011

JavaScript Bitsel VE (&)

Bitsel AND, yalnızca her iki bit de 1 ise 1 döndürür.

Ondalıkİkili
50000000000000000000000000000000101
10000000000000000000000000000001
5 & ​​10000000000000000000000000000001 (1)

Örnek

let x = 5 & 1;

JavaScript Bitsel VEYA (|)

Bitsel VEYA, bitlerden biri 1 ise 1 döndürür:

Ondalıkİkili
50000000000000000000000000000000101
10000000000000000000000000000001
5 | 10000000000000000000000000000101 (5)

Örnek

let x = 5 | 1;

JavaScript Bitsel XOR (^)

Bitsel XOR, bitler farklıysa 1 döndürür:

Ondalıkİkili
50000000000000000000000000000000101
10000000000000000000000000000001
5 ^ 10000000000000000000000000000100 (4)

Örnek

let x = 5 ^ 1;

JavaScript Bitsel DEĞİL (~)

Ondalıkİkili
50000000000000000000000000000000101
~511111111111111111111111111111010 (-6)

Örnek

let x = ~5;

JavaScript (Sıfır Doldurma) Bit Yönünde Sola Kaydırma (<<)

Bu bir sıfır dolgu sola kaydırmadır. Bir veya daha fazla sıfır biti sağdan içeri itilir ve en soldaki bitler düşer:

Ondalıkİkili
50000000000000000000000000000000101
5 << 100000000000000000000000000001010 (10)

Örnek

let x = 5 << 1;

JavaScript (İşaret Koruma) Bit Yönünde Sağa Kaydırma (>>)

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

Ondalıkİkili
-51111111111111111111111111111111011
-5 >> 111111111111111111111111111111101 (-3)

Örnek

let x = -5 >> 1;

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

Bu, sıfır dolgulu bir sağa kaymadır. Bir veya daha fazla sıfır biti soldan içeri itilir ve en sağdaki bitler düşer:

Ondalıkİkili
50000000000000000000000000000000101
5 >>> 1000000000000000000000000000010 (2)

Örnek

let x = 5 >>> 1;

İkili Sayılar

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

İkili Temsilondalık değer
00000000000000000000000000000011
00000000000000000000000000000000102
00000000000000000000000000001004
000000000000000000000000000010008
00000000000000000000000000001000016
00000000000000000000000010000032
000000000000000000000000100000000064

Birkaç bit daha ayarlamak ikili düzeni ortaya çıkarır:

İkili Temsilondalık değer
00000000000000000000000000000001015 (4 + 1)
000000000000000000000000000000110113 (8 + 4 + 1)
000000000000000000000000000010110145 (32 + 8 + 4 + 1)

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

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

İkili Temsilondalık değer
00000000000000000000000000000001015
1111111111111111111111111111111011-5
00000000000000000000000000001106
1111111111111111111111111111111010-6
00000000000000000000000000010100040
111111111111111111111111111011000-40

Decimal'i İkiliye Dönüştürme

Örnek

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

İkiliyi Ondalık Sayıya Çevirmek

Örnek

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