Int değişkenin Hıgh Byte'na erişim

Başlatan FEHMİ_ASM, 17 Eylül 2011, 08:20:57

mufitsozen

#15
Alıntı yapılan: ErsinErce - 10 Aralık 2011, 16:38:12
#define byte0(x)			(uint8)(*(((uint8 *)&x)+0))
#define byte1(x)			(uint8)(*(((uint8 *)&x)+1))


değişken şeklini değiştirmeden bu şekilde de kullanabilirsin

eksik bir nokta kalmamasi acisindan bu cozumun 16-bit sayiya byte erisim icin  little endian/big endian olup olmadiginida soylemeniz dogru olur.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.

ErsinErce

Alıntı yapılan: mufitsozen - 10 Aralık 2011, 16:58:22
eksik bir nokta kalmamasi acisindan bu cozumun 16-bit sayiya byte erisim icin  little endian/big endian olup olmadiginida soylemeniz dogru olur.
high ve ya low byte yazmamanın sebebi oydu aslında hocam ama dikkat çektiğiniz için sağolun,
"Big-endian için byte0, Little-endian için byte1 yüksek değerlikli byte'ı çekmenize yardımcı olur" diye notumuzu da ekleyelim

mufitsozen

Alıntı yapılan: ErsinErce - 10 Aralık 2011, 17:31:23
high ve ya low byte yazmamanın sebebi oydu aslında hocam ama dikkat çektiğiniz için sağolun,
"Big-endian için byte0, Little-endian için byte1 yüksek değerlikli byte'ı çekmenize yardımcı olur" diye notumuzu da ekleyelim

bende data access x86lar little-endian dir. ARM Cortex-M3/M4 ler ise chip yapimcisina gore little yada big endian olabilir. Bunu AIRCRden kontrol etmek lazim diye tamamliyayim.
Aptalca bir soru yoktur ve hiç kimse soru sormayı bırakana kadar aptal olmaz.