我正在寫一些MIDI數據,我必須進行一些int - > byte轉換並切換到big endian。現在,我正在做它喜歡:將int轉換爲字節並有效切換endian
int tempo = 500000;
char* a = (char*)&tempo;
//reverse it
inverse(a, 3);
[myMutableData appendBytes:a length:3];
和反函數:
void inverse(char inver_a[],int j)
{
int i,temp;
j--;
for(i=0;i<(j/2);i++)
{
temp=inver_a[i];
inver_a[i]=inver_a[j];
inver_a[j]=temp;
j--;
}
}
它的工作原理,但它不是真正的乾淨,我不喜歡,我不得不指定3
兩次(因爲我有很高的知道它將結束多少字節)。
有沒有更方便的方法我應該接近這個?
好了 - 這看起來不錯 - 但我有我的限制ç技能設置它的麻煩。你能用一行代碼示例幫忙嗎?調用'tempo'交換?轉換到char *的地方在哪裏? – 2011-05-06 07:47:34
@jn_pdx:請參閱編輯答案 – JeremyP 2011-05-06 08:13:10