C - Тест "ходьба один и ноль", вращение через переноску - PullRequest
0 голосов
/ 15 января 2019

Я студент, пару лет бездельничал с Си, но не практиковался в изучении языка. Я пытаюсь выполнить тест на ходьбу и ноль на байте и довольно застрял, любые советы приветствуются.

У меня два вопроса.

1) Как выполнить ноль при ходьбе?

2) Как выполнить поворот вправо через перенос (или влево) в C?

Я отработал один бит кода, хотя это не переносит цикл и перезапускается с битом 0

int8_t walkOne = 1;
walkOne <<= 1;

Walking Zero: ??

Я знаю, что должен быть лучший способ сделать это, кто-нибудь сможет помочь?

Привет

1 Ответ

0 голосов
/ 15 января 2019

C не обеспечивает никакой операции поворота. Однако вам не нужен один для этого. Чтобы подготовить значение шага 1 для шага i, просто сдвиньте один бит на i % 8 битов:

uint8_t walkOne = 1u << i%8;

i%8 - это остаток, когда i делится на восемь.

Для гуляющих нулей дополните шаблон:

uint8_t walkZero = ~(1u << i%8);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...