Каким образом конвертируется? Вы хотите это в порядке байтов с прямым порядком байтов, порядком байтов или порядком байтов? Если вы хотите, чтобы это было в собственном порядке байтов, то все, что вам нужно сделать, это:
int val = //... initialize integer somehow
char* bytes = (char*) &val;
int len = sizeof(int);
Тем не менее, лучший способ манипулировать байтами целого числа - это выполнять побитовые операции. Например, чтобы получить младший байт, вы можете использовать val & 0xFF, для получения следующего вы используете (val>>8)&0xFF
, затем (val>>16)&0xFF
, затем (val>>24)&0xFF
и т. Д.
Конечно, это зависит от размера вашего типа данных. Если вы делаете такие вещи, вы действительно должны включить <
inttypes.h
>
; и использовать uint8_t
, uint16_t
, uint32_t
или uint64_t
, в зависимости от какое целое число вы хотите; в противном случае вы не можете надежно поиграться с большим количеством байтов.