Задать вопрос
@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 в младший бит когда он выходит за пределы
  • Вопрос задан
  • 131 просмотр
Подписаться 1 Простой 5 комментариев
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Разработчик C++
    9 месяцев
    Далее
  • Академия Codeby
    Курс «Анализ защищенности инфраструктуры на основе технологий Active Directory»
    4 месяца
    Далее
  • Академия Codeby
    Курс «Цифровая криминалистика и реагирование на инциденты ОС Linux (DFIR)»
    14 недель
    Далее
Решения вопроса 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);
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы