SORU
24 NİSAN 2015, Cuma


1 içinde mantıksal 8 doğru/yanlış değerleri saklamak byte?

SRAM sadece 2 KB ile bir mikroişlemci üzerinde çalışıyorum ve umutsuz bir bellek korumak gerekir. Tek bir byte içine 8 0/1 değerleri koyabilirim nasıl çalıştığını bir bit ama tam çıkartamadım kullanarak.

struct Bits
{
    int8_t b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1;
};

int main(){
    Bits b;
    b.b0 = 0;
    b.b1 = 1;

    cout << (int)b.b0; // outputs 0, correct
    cout << (int)b.b1; // outputs -1, should be outputting 1
}

Ne veriyor?

CEVAP
24 NİSAN 2015, Cuma


Bit üyelerinin hepsi 1 bitlik imzalı tamsayı. İki sistemi tamamlayıcı, sadece 0 -1 da temsil edebilirler. 0 1 isterseniz uint8_t kullanın:

struct Bits
{
    uint8_t b0:1, b1:1, b2:1, b3:1, b4:1, b5:1, b6:1, b7:1;
};

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Visual Life

    Visual Life

    3 Temmuz 2006