SORU
11 AĞUSTOS 2008, PAZARTESİ


C vardiya operatörü

C, operatörler (, ** 1 ** 2) shift aritmetik veya mantıksal.

CEVAP
11 AĞUSTOS 2008, PAZARTESİ


Sol geçiş yaparken, aritmetik ve mantıksal bir vardiya arasında fark yoktur. Doğru kayması, kayma türü değeri değişen bir türüne bağlıdır.

Bu okuyucular için arka plan fark aşina gibi, "mantıksal" 1 bit sağa kaydır sağa tüm bitleri kaydırır ve bit 0 ile. en soldaki doldurur bir Bir" shift en soldaki bit. özgün değeri yaprakları "aritmetik Fark negatif sayılar ile ilgili ne zaman önemli hale gelir.)

İşaretsiz bir değer kayması,^< . C operatör mantıksal bir değişimdir. İmzalı bir değer kayması,^< . operatör aritmetik bir değişimdir.

Örneğin, 32 bit makine varsayarsak:

signed int x1 = 5;
assert((x1 >> 1) == 2);
signed int x2 = -5;
assert((x2 >> 1) == -3);
unsigned int x3 = (unsigned int)-5;
assert((x3 >> 1) == 0x7FFFFFFD);

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Branboy3

    Branboy3

    12 AĞUSTOS 2012
  • mist64

    mist64

    30 Mayıs 2006
  • PhoneBuff

    PhoneBuff

    10 HAZİRAN 2011