SORU
23 AĞUSTOS 2008, CUMARTESİ


C Boolean değerleri kullanarak bit operatörleri

Orada bit düzeyinde operatörler&, | ve ^ kullanmamak için bir sebep var mı "bool" C değerleri ?

Bazen doğru olması için iki şart (XOR) tam istediğim yere durumların içine çalıştırmak, ben sadece koşullu ifadede ^ operatör at. Ben de bazen sonuç doğru olup olmadığı değerlendirilecek bir durum (kısa devre) tüm bölümlerini istiyorum.&|. Ben de bazen Boolean değerleri birikir ve &= ihtiyaç ve |= oldukça yararlı olabilir.

Bunu yaparken birkaç yükseltilmiş kaşları aldım ama kodu hala başka türlü olacağını daha anlamlı ve daha temiz. Herhangi bir nedenle bools için bu kullanmak için DEĞİL mi? Bu kötü sonuçlar veren herhangi bir modern Derleyiciler var mı?

CEVAP
23 AĞUSTOS 2008, CUMARTESİ


|| ve && boolean operatörler ve ya 0 ya da 1 iade garantisi vardır. Başka bir şey yok.

| & ^ bit operatörleri. Ne zaman etki numaraları ameliyat sadece 1 ve 0, sonra onlar tam olarak aynı, ama durumlarda sizin booleans değildir kesinlikle 1 ve 0 olarak dava ile c dili--Mayıs sonunda bazı davranış yoktu. Örneğin:

BOOL two = 2;
BOOL one = 1;
BOOL and = two & one;   //and = 0
BOOL cand = two && one; //cand = 1

C , ancak, bool türü garantili sadece ya 1 ya da 0, yani daha az bir endişe bu tutum, ama aslında o insan değil kullanılan görünce böyle şeylere kodu yapar iyi bir tartışma için yapmıyorum bunu. Sadece b = b && x deyin ve olsun bitsin.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Helder Barreto

    Helder Barre

    22 Mayıs 2006
  • jonathepianist

    jonathepiani

    31 Temmuz 2008
  • newport83

    newport83

    19 HAZİRAN 2006