嘿,我想把用户输入的 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