Я должен сделать некоторое int -> байтовое преобразование и переключиться на байтовый порядок для некоторых MIDI-данных, которые я пишу.Прямо сейчас я делаю это так:
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
оба раза (поскольку я могу позволить себе роскошь знать, сколько байтов у него будет).
Есть ли более удобный способ, которым я должен подходить к этому?