D Programlama - Operatörler

Operatör, derleyiciye belirli matematiksel veya mantıksal işlemleri gerçekleştirmesini söyleyen bir semboldür. D dili yerleşik operatörler açısından zengindir ve aşağıdaki operatör türlerini sağlar -

  • Aritmetik operatörler
  • İlişkisel Operatörler
  • Mantıksal operatörler
  • Bitsel Operatörler
  • Atama Operatörleri
  • Çeşitli Operatörler

Bu bölüm aritmetik, ilişkisel, mantıksal, bitsel, atama ve diğer operatörleri tek tek açıklamaktadır.

Aritmetik operatörler

Aşağıdaki tablo, D dili tarafından desteklenen tüm aritmetik operatörleri göstermektedir. Değişken varsayA 10 ve değişken tutar B 20 tutar sonra -

Örnekleri Göster

Şebeke Açıklama Misal
+ İki işlenen ekler. A + B 30 verir
- İkinci işleneni ilkinden çıkarır. A - B -10 verir
* Her iki işleneni de çarpar. A * B, 200 verir
/ Payı pay sayacına böler. B / A 2 verir
% Bir tam sayı bölümünün kalanını döndürür. B% A, 0 verir
++ Arttırma operatörü, tamsayı değerini bir artırır. A ++, 11 verir
- Azaltma operatörü tamsayı değerini bir azaltır. A-- 9 verir

İlişkisel Operatörler

Aşağıdaki tablo, D dili tarafından desteklenen tüm ilişkisel operatörleri göstermektedir. Değişken varsayA 10 ve değişken tutar B 20 tutar, sonra -

Örnekleri Göster

Şebeke Açıklama Misal
== İki işlenenin değerlerinin eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. (A == B) doğru değil.
! = İki işlenenin değerlerinin eşit olup olmadığını kontrol eder, değerler eşit değilse koşul doğru olur. (A! = B) doğrudur.
> Soldaki işlenenin değerinin sağ işlenenin değerinden büyük olup olmadığını kontrol eder, evet ise koşul doğru olur. (A> B) doğru değil.
< Soldaki işlenenin değerinin sağ işlenenin değerinden küçük olup olmadığını kontrol eder, evet ise koşul doğru olur. (A <B) doğrudur.
> = Sol işlenenin değerinin sağ işlenenin değerinden büyük veya ona eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. (A> = B) doğru değil.
<= Sol işlenenin değerinin sağ işlenenin değerinden küçük veya ona eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. (A <= B) doğrudur.

Mantıksal operatörler

Aşağıdaki tablo, D dili tarafından desteklenen tüm mantıksal işleçleri göstermektedir. Değişken varsayA 1 ve değişken tutar B 0 tutar, sonra -

Örnekleri Göster

Şebeke Açıklama Misal
&& Mantıksal AND operatörü olarak adlandırılır. Her iki işlenen de sıfır değilse, koşul doğru olur. (A && B) yanlıştır.
|| Mantıksal VEYA Operatörü olarak adlandırılır. İki işlenenden herhangi biri sıfır değilse, koşul doğru olur. (A || B) doğrudur.
! Mantıksal DEĞİL Operatörü olarak adlandırılır. İşleneninin mantıksal durumunu tersine çevirmek için kullanın. Bir koşul doğruysa, Mantıksal NOT operatörü yanlış yapar. ! (A && B) doğrudur.

Bitsel Operatörler

Bitsel operatörler bitler üzerinde çalışır ve bit bit işlem gerçekleştirir. &, | Ve ^ için doğruluk tabloları aşağıdaki gibidir -

p q p & q p | q p ^ q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

A = 60 ise; ve B = 13. İkili biçimde aşağıdaki gibi olacaklar -

Bir = 0011 1100

B = 0000 1101

-----------------

A&B = 0000 1100

A | B = 0011 1101

A ^ B = 0011 0001

~ A = 1100 0011

D dili tarafından desteklenen Bitwise operatörleri aşağıdaki tabloda listelenmiştir. A değişkeninin 60 ve B değişkeninin 13 olduğunu varsayalım, o zaman -

Örnekleri Göster

Şebeke Açıklama Misal
& İkili AND İşleci, her iki işlenende de varsa sonuca bir bit kopyalar. (A & B) 12 verir, Ortalama 0000 1100.
| İkili VEYA İşleci, işlenenlerden herhangi birinde varsa bir bit kopyalar. (A | B) 61 verir. 0011 1101 anlamına gelir.
^ İkili XOR Operatörü, bir işlenen içinde ayarlanmışsa, ancak her ikisinde birden değil ise biti kopyalar. (A ^ B) 49 verir. 0011 0001 anlamına gelir
~ İkili Birler Tamamlayıcı Operatörü tekli ve bitleri 'çevirme' etkisine sahiptir. (~ A) -61 verir. 2'nin tamamlayıcı formunda 1100 0011 anlamına gelir.
<< İkili Sol Kaydırma Operatörü. Soldaki işlenenler değeri, sağ işlenen tarafından belirtilen bit sayısı kadar sola taşınır. A << 2 240 verir. 1111 0000 anlamına gelir
>> İkili Sağ Shift Operatörü. Soldaki işlenenler değeri, sağ işlenen tarafından belirtilen bit sayısı kadar sağa taşınır. A >> 2 verir 15. 0000 1111 anlamına gelir.

Atama Operatörleri

Aşağıdaki atama operatörleri D dili tarafından desteklenmektedir -

Örnekleri Göster

Şebeke Açıklama Misal
= Basit bir atama operatörüdür. Sağ taraftaki işlenenlerden sol taraftaki işlenenlere değerler atar C = A + B, A + B'nin değerini C'ye atar
+ = Ekle VE atama operatörüdür. Soldaki işlenene sağ işlenen ekler ve sonucu sol işlenenlere atar C + = A, C = C + A'ya eşdeğerdir
- = Çıkarma VE atama operatörüdür. Sağ operandı sol operanddan çıkarır ve sonucu sol operanda atar. C - = A, C = C - A'ya eşdeğerdir
* = Çarpma VE atama operatörüdür. Sağ işleneni sol işlenenle çarpar ve sonucu sol işlenene atar. C * = A, C = C * A'ya eşdeğerdir
/ = Bölme VE atama operatörüdür. Soldaki operandı sağ operandla böler ve sonucu sol operanda atar. C / = A, C = C / A'ya eşdeğerdir
% = Modülüs VE atama operatörüdür. İki işlenen kullanarak modülü alır ve sonucu sol işlenenlere atar. C% = A eşdeğerdir C = C% A
<< = Sol kaydırma VE atama operatörüdür. C << = 2, C = C << 2 ile aynıdır
>> = Sağ kaydırma VE atama operatörüdür. C >> = 2, C = C >> 2 ile aynıdır
& = Bitsel AND atama operatörüdür. C & = 2, C = C & 2 ile aynıdır
^ = Bitsel özel OR ve atama operatörüdür. C ^ = 2, C = C ^ 2 ile aynıdır
| = Bitsel kapsayıcı OR ve atama operatörüdür C | = 2, C = C | ile aynıdır | 2

Çeşitli Operatörler - Sizeof ve Ternary

Aşağıdakileri içeren birkaç önemli operatör vardır: sizeof ve ? : D Language tarafından desteklenmektedir.

Örnekleri Göster

Şebeke Açıklama Misal
boyutu() Bir değişkenin boyutunu döndürür. sizeof (a), burada a tam sayıdır, 4 döndürür.
& Bir değişkenin adresini verir. & a; değişkenin gerçek adresini verir.
* Bir değişkene işaretçi. * a; bir değişkene işaretçi verir.
? : Koşullu İfade Koşul doğruysa X değeri: Aksi takdirde Y değeri.

D'de Operatör Önceliği

Operatör önceliği, bir ifadedeki terimlerin gruplandırılmasını belirler. Bu, bir ifadenin nasıl değerlendirildiğini etkiler. Bazı operatörlere diğerlerine göre öncelik verilir.

Örneğin, çarpma operatörü toplama operatöründen daha yüksek önceliğe sahiptir.

Bir ifade düşünelim

x = 7 + 3 * 2.

Burada x'e 20 değil 13 atanmıştır. Bunun basit nedeni, * operatörünün + 'dan daha yüksek önceliğe sahip olmasıdır, bu nedenle önce 3 * 2 hesaplanır ve sonra sonuç 7'ye eklenir.

Burada, en yüksek önceliğe sahip operatörler tablonun en üstünde, en düşük olanlar ise en altta görünür. Bir ifade içinde, önce yüksek öncelikli operatörler değerlendirilir.

Örnekleri Göster

Kategori Şebeke İlişkisellik
Postfix () [] ->. ++ - - Soldan sağa
Birli + -! ~ ++ - - (tür) * & sizeof Sağdan sola
Çarpımsal * /% Soldan sağa
Katkı + - Soldan sağa
Vardiya << >> Soldan sağa
İlişkisel <<=>> = Soldan sağa
Eşitlik ==! = Soldan sağa
Bitsel AND & Soldan sağa
Bitsel ÖZELVEYA ^ Soldan sağa
Bit tabanlı VEYA | Soldan sağa
Mantıksal AND && Soldan sağa
Mantıksal VEYA || Soldan sağa
Koşullu ?: Sağdan sola
Görev = + = - = * = / =% = >> = << = & = ^ = | = Sağdan sola
Virgül , Soldan sağa