#include <stdio.h>
#include <stdint.h>
uint8_t compress_bits(uint16_t val)
{
uint8_t num=0;
for(int i=15,j=7;i>=0;i--)
{
if(i==0)
{
if(((val>>i)&1)==1)
{
num |=1<<j;
j--;
}
else if(((val>>i)&1)==0)
{
num &=~(1<<j);
j--;
}
}
else if(i%2==0)
{
if(((val>>i)&1)==1)
{
num |=1<<j;
j--;
}
else if(((val>>i)&1)==0)
{
num &=~(1<<j);
j--;
}
}
}
// Your logic here
return num;
}
int main() {
uint16_t val;
scanf("%hu", &val);
uint8_t result = compress_bits(val);
printf("%u", result);
return 0;
}
Input
20548
Expected Output
202