Эй, я хочу преобразовать int, который вводится пользователем в 4 байта, который я присваиваю массиву символов. Как это можно сделать?
Пример:
Преобразование пользовательских входов от 175 до
00000000 00000000 00000000 10101111
Проблема со всеми ответами до сих пор, преобразование 255 должно приводить к 0 0 0 ff
, хотя оно выводится как: 0 0 0 ffffffff
unsigned int value = 255;
buffer[0] = (value >> 24) & 0xFF;
buffer[1] = (value >> 16) & 0xFF;
buffer[2] = (value >> 8) & 0xFF;
buffer[3] = value & 0xFF;
union {
unsigned int integer;
unsigned char byte[4];
} temp32bitint;
temp32bitint.integer = value;
buffer[8] = temp32bitint.byte[3];
buffer[9] = temp32bitint.byte[2];
buffer[10] = temp32bitint.byte[1];
buffer[11] = temp32bitint.byte[0];
оба результата заключаются в 0 0 0 ffffffff
вместо 0 0 0 ff
Еще один пример - 175, поскольку вход печатается как 0, 0, 0, ffffffaf
, когда он должен быть только 0, 0, 0, af