我有一個字節向量,我想將它們轉換爲四字數據類型(64位小端)。矢量的向四字節的字節向量
例如雙字(32位):
int DataConversor::toDword()
{
return ((data[0] << 24) | (data[1] << 16) | (data[2] << 8) | (data[3]));
}
問題根據Visual Studio中2013其未定義的行爲與多於32個字節移位:
__int64 DataConversor::toQuadWord()
{
return (__int64)((data[0] << 64 | data[1] << 56 | data[2] << 48 | data[3] << 40 |
data[4] << 32 | data[5] << 24) | (data[6] << 16) | (data[7] << 8) | (data[8]));
}
爲實現此目的的任何方法,沒有使用_ASM指令?
如果'x'不是64位對齊,一些處理器將爲此執行無效的代碼。例如,[這個處理器將](http://www.ti.com/product/tms320c6657)。 – 2014-09-01 12:38:30