#include <stdio.h>
#include <stdint.h>
/*
* Đề bài yêu cầu chèn các bit 0 vào xen kẽ vào các bit của `val`
0 b7 0 b6 0 b5 0 b4 0 b3 0 b2 0 b1 0 b0
Lấy bit thứ i của `val`: (val >> i) & 1)
Set bit thứ 2*i của `result`: ((val >> i) & 1) << 2*i)
....
0b11001010
(0b11001010 >> 0) = 0b11001010
(0b11001010) & 1 = 0
(0 << 0) = 0
(0b11001010 >> 1) = 0b01100101
(0b11001010) & 1 = 1
(1 << 2) = 0000 0100
*/
uint16_t spread_bits(uint8_t val) {
// Your logic here
uint16_t result = 0;
for (uint8_t i = 0; i < 8; ++i) {
result |= ((val >> i) & 1) << (2*i);
}
return result;
}
int main() {
uint8_t val;
scanf("%hhu", &val);
uint16_t result = spread_bits(val);
printf("%u", result);
return 0;
}
Input
202
Expected Output
20548