接收一堆數,有些需要顛倒位元組,比如
u8 jieshou_data[1000];
收到的數扔到這個陣列裡,但是裡面有些數需要顛倒後,再給應用使用。
查查網上:
short型:
unsigned short swapshort16(unsigned short shortvalue)
int 型(原理都一樣!):
int swapint32(int intvalue)
本博主自己改造如下:
void swap16(uint16_t *shortvalue)
void swap32(uint32_t *intvalue)
int swap(uint16_t type, uint8_t *data, uint16_t length, uint16_t offset)
swap16((uint16_t *)&data[offset]);
} else if (type == 32)
swap32((uint32_t *)&data[offset]);
} else
return 0;
}測試:
uint8_t data[10] = ;
swap(16,data,sizeof(data),1);
swap(32,data,sizeof(data),3);
swap(16,data,sizeof(data),5);
swap(32,data,sizeof(data),6);
swap(32,data,sizeof(data),7);
誰看到覺得有bug,幫忙指出。 演算法 位元組高低位交換
對乙個位元組資料,逐個交換其高低位,例如11010001,經過0 7,1 6,2 5,3 4對應位的交換,變成10001011 對於該問題,我們最先想到的是對原位元組通過移位操作來逐位處理,使用另乙個變數來儲存交換後的結果。這種解決方案處理起來思路清晰,編寫 應該不難。下面是該思路對應的 unsig...
演算法 位元組高低位交換
問題 對乙個位元組資料,逐個交換其高低位,例如11010001,經過0 7,1 6,2 5,3 4對應位的交換,變成10001011 解決思路 對於該問題,我們最先想到的是對原位元組通過移位操作來逐位處理,使用另乙個變數來儲存交換後的結果。這種解決方案處理起來思路清晰,編寫 應該不難。下面是該思路對...
演算法 位元組高低位交換
對乙個位元組資料,逐個交換其高低位,例如11010001,經過0 7,1 6,2 5,3 4對應位的交換,變成10001011 對於該問題,我們最先想到的是對原位元組通過移位操作來逐位處理,使用另乙個變數來儲存交換後的結果。這種解決方案處理起來思路清晰,編寫 應該不難。下面是該思路對應的 cpp v...