@CodeOfYourLIfe

Как ограничить смещение битов?

volatile u8 m_d[]={0,0,0,0b00100,0,0,0};
case 4: while(i<7){
if (m_d[i] > 0)
{
m_d[i] = (m_d[i]<<1);
}
i++;
}
Мне нужно персуваты 1 в младший бит когда он выходит за пределы
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
@res2001
Developer, ex-admin
Вам нужен циклический сдвиг?
Придется реализовывать самому - просто проверьте перед сдвигом последний бит, если он равен 1, то после сдвига прибавьте 1 к числу.
if(m_d[i] & 0x80) {
  m_d[i] = (m_d[i]<<1);
  ++m_d[i];
} else {
  m_d[i] = (m_d[i]<<1);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы