JavaScript İfadeleri ve Operatörler - 2
JavaScript operatörleri konusuna bir önceki yazımızda kaldığımız yerden devam ediyoruz...
Aritmetik Operatörler (Arithmetic Operators) Aritmetik operatörler işlemcilerle temsil edilen sayısal değerleri alarak(her bir literal veya değişken) matematiksel hesaplamalar gerçekleştirmek ve hesaplama işlemi sonucunda tek bir sayısal değer elde etmek için kullanılır. Standart aritmetik operatörler, toplama(+), çıkarma(-), çarpma(*) ve bölme(/) dir. Bu operatörler diğer bir çok programlama dilindeki aritmetik operatörler gibi çalışır, farklı olarak JavaScript"te bölme işlemi sonucunda elde edilen değer kayan noktalı bir sayıdır; JavaScript, C veya Java dillerinde olduğu gibi noktadan sonraki kısmı görmezden gelmez. Örneğin :
1 / 2 // JavaScript"te 0.5 değeri elde edilir 1 / 2 // Java"da 0 değeri elde edilir
JavaScript"te temel aritmetik operatörlere ek olarak aşağıdaki tabloda yer verilen operatörler de kullanılmaktadır.
| Operatör |
Açıklaması |
% (Modulus - Katsayı) |
İkili operatördür. İki işlemcinin bölümünden elde edilen tam sayı kalanı verir. Örneğin 12 % 5 ifadesi 2 değerini üretmektedir. |
++ (Increment - Arttırma) |
Birli operatördür. İşlemcisinin değerini bir arttırır. Ön ek olarak kullanılırsa(++x) işlemcinin bir arttırıldıktan sonraki değerini verir; son ek olarak kullanılırsa(x++) işlemcinin bir arttırılmadan önceki değerini verir. |
-- (Decrement - Azaltma) |
Birli operatördür. İşlemcisinin değerini bir azaltır. Ön ek olarak kullanılırsa(--x) işlemcinin bir azaltıldıktan sonraki değerini verir; son ek olarak kullanılırsa(x--) işlemcinin bir azaltılmadan önceki değerini verir. |
- (Negation - Negatifleme) |
Birli operatördür. İşlemcisinin negatif değerini vererek işaretini "-" yapar. Örneğin x 3 ise, -x ifadesi -3 değerini üretmektedir. |
Bu tabloda açıklanan arttırma ve azaltma operatörleri size yabancı gelebilir. Örneğimizi inceleyerek bu iki operatörün nasıl kullanıldığını daha iyi anlayabilirsiniz :
var x = 5, y = 10;
x++; // x++ = x + 1
// x++ = 5 + 1
// x++ = 6
// x = 6
x += y--; // x = x + y
// x = 6 + 10
// x = 16
// y = 9 (y--)
x -= -(++y); // x = x - (-(y + 1))
// x = x + y + 1
// x = 16 + 9 + 1
// x = 26
// y = 10 (++y)
|
Arttırma ve azaltma operatörlerini ön ek veya son ek olarak kullanırken iki kullanım şekli arasındaki ayrıma dikkat etmeliyiz. İlkinde değişken değeri aritmetik işleme sokulmadan önce arttırılır veya eksiltilirken; ikincisinde değişken önce işleme sokulur, sonra değeri arttırılır veya eksiltilir.
Bit Düzeyinde İşlem Yapan Operatörler (Bitwise Operators) Bit düzeyinde işlem yapan operatörler, işlemcilerini ASCII, string veya tam sayı gibi sembolik karşılıklarıyla değil de 32 bitlik düzende, sıfırlar ve birler olarak ele alır. Bütün string ve sayısal değerler bit düzeyinde binary karşılıklar bulmaktadır. Örneğin on tabanındaki 9 tam sayısı bit düzeyinde binary(ikili) 1001 olarak ifade edilir. JavaScript bit düzeyindeki operatörleri ile veri üzerinde işlem yaptıktan sonra elde edilen değerin standart sayısal karşılığını verir.
Aşağıdaki tabloda özet açıklamalarıyla beraber JavaScript"in bit düzeyinde işlem yapan operatörlerinin bir listesini bulacaksınız.
| Operatör |
Kullanımı |
Açıklaması |
| Bit düzeyinde VE (Bitwise AND) |
a & b |
İki işlemcinin karşılıklı bitlerinin her ikisi de 1 ise 1 üretir. |
| Bit düzeyinde VEYA (Bitwise OR) |
a | b |
İki işlemcinin karşılıklı bitlerinden herhangi biri 1 ise 1 üretir. |
| Bit düzeyinde özel VEYA (Bitwise XOR) |
a ^ b |
İki işlemcinin karşılıklı bitleri birbirinden farklıysa 1 üretir. |
| Bit düzeyinde DEĞİL (Bitwise NOT) |
~ a |
İşlemcisinin her bir bitinin tersini alır. Bu işleme bire tümleme denilmektedir. |
| Bit düzeyinde sola öteleme |
a << b |
İlk işlemcisinin her bir bitini ikinci işlemcisinin değeri kadar sola kaydırır. |
| Bit düzeyinde sağa öteleme |
a >> b |
İlk işlemcisinin her bir bitini ikinci işlemcisinin değeri kadar sağa kaydırır. |
| Sıfır-doldurmalı sağa öteleme |
a >>> b |
İlk işlemcisinin her bir bitini ikinci işlemcisinin değeri kadar sağa kaydırır ve sola sıfır ekler. |
Bit Düzeyinde Mantıksal Operatörler Kavramsal olarak bit düzeyinde mantıksal(logical) işlem yapan operatörler aşağıda belirtildiği gibi çalışır :
İşlemciler 32-bitlik tamsayıya çevrilir ve bit serisi(sıfırlar ve birler) olarak ifade edilir.
İki işlemcinin karşılıklı bitleri birbiriyle eşleştirilir; örneğin, birinci bitle birinci bit, ikinci bitle ikinci bit...
Operatör, bit çiftlerinin herbirine uygulanarak sonuç bit düzeyinde yapılandırılır.
Şimdi bu çalışma prensibini bir kaç örnek üzerinde inceleyelim :
15 = 1111, 9 = 1001
15 & 9 |
1
1 |
1
0 |
1
0 |
1
1 |
| 9 |
1 |
0 |
0 |
1 | |
15 | 9 |
1
1 |
1
0 |
1
0 |
1
1 |
| 15 |
1 |
1 |
1 |
1 | |
15 ^ 9 |
1
1 |
1
0 |
1
0 |
1
1 |
| 6 |
0 |
1 |
1 |
0 | |
|
İlk örneğimizde iki işlemciye(15 ve 9) bit düzeyinde VE işlemi uygulanmış; karşılıklı bitlerin her ikisinin de 1 olduğu durumlarda 1, herhangi birisinin 0 olduğu durumlarda 0 üretilmiştir. İşlem bütün bitlere sırasıyla uygulandıktan sonra elde edilen değer "1001", yani 9 sayısıdır.
İkinci örneğimizde iki işlemciye(15 ve 9) bit düzeyinde VEYA işlemi uygulanmış; karşılıklı bitlerden herhangi birinin 1 olduğu durumlarda 1 üretilmiştir (karşılıklı bitlerin her ikisi de 0 olsaydı 0 üretilecekti). İşlem bütün bitlere sırasıyla uygulandıktan sonra elde edilen değer "1111", yani 15 sayısıdır.
Üçüncü örneğimizde iki işlemciye(15 ve 9) bit düzeyinde özel VEYA işlemi uygulanmış; karşılıklı bitlerin aynı olmadığı durumlarda 1, karşılıklı bitlerin aynı olduğu durumlarda 0 üretilmiştir. İşlem bütün bitlere sırasıyla uygulandıktan sonra elde edilen değer "0110", yani 6 sayısıdır.
Son örneğimizde ise işlemciye(9) bit düzeyinde DEĞİL(bire tümleme) işlemi uygulanmış ve her bir bitinin tersi alınarak "0110", yani 6 sayısı üretilmiştir.
|