我對ARM設備字節序的相位感到困惑。我正在測試的設備使用小端。與ARM處理器的字節序混淆
假設有代碼在這裏,其交換元件中的陣列:
uint32_t* srcPtr = (uint32_t*)src->get();
uint8_t* dstPtr = dst->get();
dstPtr[0] = ((*srcPtr) >> 16) & 0xFF;
dstPtr[1] = ((*srcPtr) >> 8) & 0xFF;
dstPtr[2] = (*srcPtr) & 0xFF;
dstPtr[3] = ((*srcPtr) >> 24);
我的理解是,如果srcPtr包含{0,1,2,3}輸出dstPtr應該是{1,2,3, 0}。
但輸出是dstPtr是{2,1,0,3}。
這是否意味着srcPtr以這種方式讀取3,2,1 - > 0?
有人可以幫我嗎? :)
這是由於小端?
現在在arm處理器上的big endian,這是令人困惑,尤其是當一些BE32和一些BE8 .... –