SORU
28 EKİM 2008, Salı


Neden hex kullanmak?

Hey! http://www.gnu.org/software/m68hc11/examples/primes_8c-source.html bu kod bakıyordum

Bazı durumlarda line 134 gibi hex sayıları kullandıklarını fark ettim:

for (j = 1; val && j <= 0x80; j <<= 1, q  )

Şimdi neden 0x80 kullanıyorlar? Hex ile o kadar iyi değilim ama ondalık için bir online hex buldum ve bana 128 0x80 için verdi.

Ayrıca satır önce 134, on line 114 bu var:

small_n = (n & 0xffff0000) == 0;

Ondalık için onaltılık bana onaltılık sayı için 4294901760 verdi. İşte bu çizgide bir parça yapmak VE sonucu karşılaştırılması için 0??

Neden sadece numarasını kullanmak değil mi? Herkes ve diğer durumlara örnekler verin bunu açıkla lütfen.

Ayrıca sadece hex sayılar nedenini anladığı kodu büyük çizgiler gördüm :(

CEVAP
28 EKİM 2008, Salı


Her iki durumda da sana ceza, numarasını bit deseni önemlidir, gerçek sayı değil.

Örneğin, İlk durumda, j döngü ilerledikçe 1, 2, 4, 8, 16, 32, 64 ve son olarak 128 olacak.

İkili, yani

, , , , *, 0010:0000, *0001:00000000:10000000:0100*60000:000111* ve 1000:0000.

C veya C ikili sabitler için seçenek yok , ama Hex biraz daha net: 0x01, 0x02, 0x04, 0x08, , *, *190x100x20, ve 0x80.

İkinci örnekte, hedef değeri düşük iki bayt kaldırmak oldu. Yani 1,234,567,890 değeri verilen 1,234,567,168 ile bitirmek istiyoruz.
Hex, net: 0x4996:02d2, 0x4996:0000 bitiş ile başlayın.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Charles Renaud

    Charles Rena

    10 Kasım 2007
  • MyTiredBones

    MyTiredBones

    2 Temmuz 2013
  • TomSka

    TomSka

    30 Mayıs 2006