|
Такой вопрос. Есть переменная long int (4 байта). Точнее, это элемент массива типа long int. Её надо раскрошить на 4 переменные char (1 байт) и слить в UART. Пишу на Коде-Вижне.
Почитал ричи с керниганом, они пишут, что нижеприведённый код, цитирую, "ведёт себя хорошо" :)
Вот и вопрос - насколько это работоспособно?
unsigned char i=0;
unsigned char temp=0;
long int koefp[11];
/************************/
for (i=0; i<11; i++)
{
temp=koefp[i];
USART_Transmit( temp );
temp=(koefp[i] >> 8);
USART_Transmit( temp );
temp=(koefp[i] >> 8);
USART_Transmit( temp );
temp=(koefp[i] >> 8);
USART_Transmit( temp );
}
То есть, при присвоении чару лонг-инта, чару присваиваются только младшие 8 бит?
При сдвиге, результат сдвига в переменной лонг инт сохраняется? То есть, надо каждый раз сдвигать по 8 или сначала на 8, потом на 16, потом на 24?..