JavaScript'te Bitwise Operators, Typed Arrays, Array Buffers
Bitwise Operators (Bit Düzenleyici Operatörler)
JavaScript'te bit operatörleri (bitwise operators), sayıları bit seviyesinde işlemek için kullanılan operatörlerdir. Bit operatörleri, sayıları binary (ikili, ikilik) olarak işleyerek hızlı ve optimize edilmiş işlemler yapmayı sağlar. JavaScript'te kullanılan bit operatörleri şunlardır:
&
(AND): Her iki operandın bitlerinin de 1 olduğu durumları 1 yapar. Örnek:2 & 5
sonucu0
.|
(OR): En az bir operandın bitinin 1 olduğu durumları 1 yapar. Örnek:2 | 5
sonucu7
.^
(XOR): Her iki operandın bitleri farklı ise 1 yapar. Örnek:2 ^ 5
sonucu7
.~
(NOT): Operandın bitlerini tersine çevirir. Örnek:~5
sonucu-6
.<<
(Left Shift): Operandı belirtilen sayı kadar sola kaydırır. Örnek:5 << 1
sonucu10
.>>
(Sign-propagating Right Shift): Ön işaret bitini koruyarak operandı belirtilen sayı kadar sağa kaydırır. Örnek:10 >> 1
sonucu5
.>>>
(Zero-fill Right Shift): Operandı belirtilen sayı kadar sağa kaydırır ve boş yerlere sıfır ekler. Örnek:10 >>> 1
sonucu5
.
Typed Arrays (Tipli Diziler)
JavaScript, temel olarak dinamik tiplere sahip bir dildir. Ancak, bazen daha düşük seviyeli işlemler yapmak için tip güvenli (type safe) veri yapılarına ihtiyaç duyabiliriz. Bu noktada TypedArray
sınıfı devreye girer. Bu sınıf, bellekte hafif bir veri yapılarını temsil eder ve özellikle sayısal veriler için optimize edilmiştir. TypedArray
'ler, bellek kullanımını ve erişim hızını önemli ölçüde artırabilir. Örnek tipli diziler şunlardır: Int8Array
, Uint8Array
, Int16Array
, Uint16Array
, Int32Array
, Uint32Array
, Float32Array
, Float64Array
ve daha fazlası.
Örnek bir Int8Array
oluşturmak:
let intDizi = new Int8Array(4); // 4 elemanlık bir Int8Array oluştur
intDizi[0] = 10;
intDizi[1] = 20;
console.log(intDizi); // Int8Array(4) [ 10, 20, 0, 0 ]
Array Buffers (Dizi Tamponları)
ArrayBuffer
sınıfı, bellekte sabit bir boyutta veri depolamak için kullanılır. ArrayBuffer
'lar, bellek kullanımını ve veri erişimini optimize etmek için kullanışlıdır. Dizinin değerlerini değiştirmek ve okumak için TypedArray
'ler veya DataView
sınıfı kullanılır. ArrayBuffer
'lar, genellikle ağ işlemleri, dosya okuma/yazma ve daha fazlası gibi birden fazla veriyi yönetmek için kullanılır.
Örnek bir ArrayBuffer
oluşturmak:
let buffer = new ArrayBuffer(16); // 16 byte boyutunda bir ArrayBuffer oluştur
let int32View = new Int32Array(buffer); // ArrayBuffer üzerinde bir Int32Array oluştur
int32View[0] = 42;
console.log(int32View[0]); // 42
Sonuç
Bitwise operatörler, tipli diziler (Typed Arrays) ve dizi tamponları (Array Buffers), JavaScript'in daha düşük seviyeli işlemler yapmak için sunduğu güçlü araçlardır. Bu araçlarla sayısal verileri bit seviyesinde işleyebilir, bellekte optimize edilmiş veri yapıları oluşturabilir ve daha hızlı ve verimli kodlar yazabilirsiniz.