我有以下这些定义:
int data = uartBaseAddress[UART_DATA_REGISTER / 4]; // data coming from UART RX port
char message[20]; // array of 20 chars
现在当我尝试这样做时:
message[0] = (char) data;
printf("%x", message[0]);
它会打印出(例如):"ffffff9c"
。当然,我只想要最后8位("9c"),但我不知道如何正确地将int
转换为char
。
编辑:我的意思是:我必须像这样填充数组:
data = 0xFFFFFF9c;
message[0] = data & 0xFF; -- it has to contain only 9c
data = 0xFFFFFFde;
message[1] = data & 0xFF; -- it has to contain only de
etc...