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

  • ICON

    ICON

    19 EKİM 2011
  • Matthew Smith

    Matthew Smit

    24 Mayıs 2010
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009