有一种编码规则:将十进制数A转换为8位二进制数B,将B按位取反(“0”变“1”,“1”变“0”)后,左移三

位,左移出的三位按原来顺序补在右边,如果A=57,则按此规则编码后,得到的数为


A=57D=00111001B,取反=11000110B

循环左移1位:10001101B

循环左移2位:00011011B

循环左移3位:00110110B=54D

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-01-27

#include <stdio.h>
int main()
{ int a;
  unsigned char b;
  scanf("%d",&a);
  b=a;
  b=~b;
  b=b/(1<<5)+(b<<3);
  printf("%u\n",b);
  return 0;
}

相似回答