şükela:  tümü | bugün
  • multibyte degerlerin tersten siralandigi ve cogu cpu'da kullanilan binary represantation.. mesela 1234 diye bir hex sayi hafizada "34,12" olarak siralanir..
  • (bkz: big endian)
  • guliver'in seyahatlerinde yumurtayi kucuk tarafindan kiranlar little endian, buyuk tarafindan kiranlar (tabii duz tarafindan sivri tarafindan diye de geciyo olabilir turkcesinde, hatirlayamadim bi an) big endian'di. zaten bilgisayarlarda da, pek nukteli birinin yazdigi paper'da bu kelimeleri byte ordering'e uyarlayarak kullanmasindan sonra oyle adlandirilmaya baslanmis...
  • little endian bir işlemci kullanıyorsanız, bu makina için yazılan kodlarda networkten alınan paketlere network to host, network'e gönderilen paketlere ise host to network dönüşümlerinden birini uygulamanız gerekir.

    c için kullanabileceğiniz hazır fonksiyonlar:

    (bkz: ntohs)
    (bkz: ntohl)
    (bkz: htons)
    (bkz: htonl)
  • (bkz: lsb)
  • .net'in yaradılış amacına uygun şekilde windows dışında bir platform'da da kullanmaya kalkanların sayısının birkaç küçük afrika kabilesinin nüfusuna eş olduğundan .net üzerinde makinenin endianness'ına bakmak cehaletten kabul edilir.

    edit: bunu yazmadan önce buralarda .net'in islittleendian fonksiyonundan bahseden bişeyler vardı ama?
  • (bkz: middle endian)
  • intel x86 mimarili sistemlerde, düşük anlamlı* bit'lerin düşük bellek adresinde, yüksek anlamlı* bit'lerin yüksek bellek adresinde tutulması durumu. aşağı seviyeli* çalışılırken, mikroişlemciye ilişkin endianness durumuna dikkat etmek gerekir. aksi takdirde debug manyağı olmak işten bile değildir. bir de bi-endianness kavramı vardır ki, little endian/big endian çalışma seçeneği sunar. intel, ia-64 mimaride bunu desteklemektedir.

    (bkz: epic)
  • i386 ve devamı olan işlemciler little-endian kullanır.
    elimizde 0x34e2561a 4 byte’lık ınteger verimiz olsun. sağdan itibaren başlanarak 0x1a 0x56 0xe2 0x34 olarak saklanır diyebiliriz.
  • big endian ve little endian kavramlarını anlamak için bilgisayarlardaki hafıza yapılarına biraz hakim olmamız gerekiyor. bilgisayarlarda kullanılanılan hafızaları aslında birer büyük dizi (array) gibi düşünebiliriz. içinde byte'ları bulunduran büyük diziler. bu dizi bölgelerine biz hafıza adresleri diyoruz.
    hafıza adresleri her adreste büyüklüğü bir byte olan bir eleman saklar.
    (bazı konfigürasyonlarda hafıza adreslerinde byte'dan başka şeylerde saklanır mesela nibble ya da bit fakat bunlar oldukça az rastlanan durumlardır bu bakımdan ben bu yazıda bütün hafıza adreslerinde byte saklanıyor olarak farz edeceğim).

    hafızaya word kayıt etmek:

    yazılımla uğraşanların bildiği üzere 1 word 32 bittir yani 4byte. integer, single-precision floating point sayı vb veri tipleri hep 32 bit uzunluğundadır.
    peki biz bu 32 bit uzunluğundaki verileri her biri sadece tek 1 byte tutan 4 byte olmayan hafıza adreslerine nasıl kayıt edeceğiz? cevabı basit 32 bitlik büyüklüğü 4'er byte'a ayıracağız.
    örnek olarak 32 bit hexadecimal olarak 90ab12cd16 gibi değer var elimizde ve bunu hafızaya kayıt etmek istiyoruz. bildiğimiz üzere her hexadecimal basamak 4 bittir. o zaman biz 8 hexadecimal basamakla 32 bitlik bir değeri gösterebiliriz.
    yani bu 4 byte 90,ab,12,cd dir. her byte 2 hex basamaktan oluyor. şimdi bu 4 byte'ı hafızada nasıl kayıt edebiliriz.

    bu kayıt işlemi iki türlü olabilir.

    big endian

    big endian tarzında most significant byte [(bkz: msb)] en küçük hafıza adresine yazılır

    adres byte
    1000 90 (most significant byte)
    1001 ab
    1002 12
    1003 cd

    little endian

    little endian tarzında ise most significant byte [(bkz: msb)] en büyük hafıza adresine yazılır.

    adres byte
    1000 cd
    1001 12
    1002 ab
    1003 90(most significant byte)

    dikkat edilirse big endian ve little endian bir birlerinin tam tersi kayıt methodlarıdır.

    bu kayıt methodları sizin kullandığınız işlemcinin mimarisine göre kullanılırlar.