Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdint.h>
- #define ITER 8
- void pbyte(uint8_t x)
- {
- for (uint8_t i = 0; i < 8; i++)
- printf("%d", ((x << i) & 0x80) ? 1 : 0);
- }
- uint8_t reverse(uint8_t x)
- {
- uint8_t out = 0;
- for (uint8_t i = 0; i < 8; i++) {
- out = (out << 1) | (x & 0b1);
- x >>= 1;
- }
- return out;
- }
- static uint8_t t = 0;
- void mod(void)
- {
- static uint8_t flag = 0;
- if (!t) {
- t = 0x18;
- flag = flag ? 0 : 1;
- return;
- }
- else if (t == 0x18 && !flag) {
- t = 0x00;
- return;
- }
- else if (t == 0x81)
- flag = flag ? 0 : 1;
- t &= 0x0F;
- if (flag)
- t >>= 1;
- else
- t <<= 1;
- t |= reverse(t);
- }
- int main(void)
- {
- uint8_t n = 2;
- for (uint8_t i = 0; i < n * ITER; i++) {
- pbyte(t);
- printf("\n");
- mod();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement