SORU
25 AĞUSTOS 2011, PERŞEMBE


Bit Endianness Bağlıdır Shift mu?

Ben sayı 'numb'=1025 [00000000 00000000 00000100 00000001] temsil: varsayalım

Küçük-İndian Makinesi:

00000001 00000100 00000000 00000000

Büyük-İndian Makinası:

00000000 00000000 00000100 00000001

Ben 10 bit) geçerli bırakılırsa şimdi, (yani: uyuşmuş <&;= 10 lt) olmalıdır:

[A] Küçük-İndian Makine:

GDB içinde şunu fark ettim ki, Küçük İndian 3 adımda Sol mesaisinde: [gösterdim '3' daha iyi işleme sadece anlamak için Adımlar]

  1. Bu şeker yok. Büyük-İndian Kongre:

    00000000        00000000        00000100    00000001
    
  2. Uygula-Sola Kayma:

    00000000        00010000        00000100        00000000
    
  3. Küçük-İndian yine: Sonuç temsil eder

    00000000        00000100        00010000        00000000 
    

[B]. Büyük-İndian Makinası:

00000000        00010000        00000100        00000000

Benim Sorum:

Eğer ben doğrudan Küçük İndian Sola Kayma uygularsanız Kongre, vermelidir:

numb:

00000001 00000100 00000000 00000000

numb << 10:

00010000 00000000 00000000 00000000

Ama aslında verir:

00000000        00000100        00010000        00000000 

İkinci sonucu elde etmek için, yukarıdaki üç varsayımsal adımları gösterdim.

Lütfen yukarıdaki iki farklı sonuçları neden bana açıklayın: numb << 10 gerçek sonucun beklenen sonuçtan farklı değildir.

CEVAP
25 AĞUSTOS 2011, PERŞEMBE


Endianness değerler hafızada saklanır. İşlemcisine, endianness yüklü olursa olsun, bit shift talimat işlemci kayıt değeri üzerinde çalışıyor. Bu nedenle, yüklenmesini bellek işlemci eşdeğer dönüştürmek için büyük indian, değişen operasyon geliyor ve daha sonra yeni değer saklanır geri hafıza, olan küçük indian bayt sırası gelir etkisi yine.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • apenney888

    apenney888

    27 EKİM 2010
  • ImBluecams

    ImBluecams

    25 Kasım 2012
  • Pepsi

    Pepsi

    1 Kasım 2005