一个8比特的数,要求编写一端C程序实现位倒序功能.

一个8比特的数,要求编写一端C程序实现位倒序功能.,第1张

/*

今天朋友问这个问题,我百度了一下,看到你这个提问了,感觉解答都差强人意;

正好也做出来了,就顺便贴出来分享。

注:我这些文字你全复制了就能运行,核心函数是Function(),核心语句看标注

*/

# include <stdio.h>

# define BITS 8 // 自定义比特数

unsigned int Function(unsigned int number)// 倒置

void PrintBit(unsigned int number)// 按位输出,长度锁定为BITS

int main(void)

{

unsigned int number

unsigned int result

printf("请输入十进制转化后的数字:")

scanf("%d", &number)

result = Function(number)

printf("结果是:")

PrintBit(result)

putchar('\n')

}

unsigned int Function(unsigned int number) // 倒置

{

unsigned int i

unsigned int result// 保存结果

if(!number) // 全为0时需特殊处理

return 0

for(i=0,result=0i<BITS++i) // (核心语句)

{

result = result*2 + ((number>>(i))%2)// 倒序按位取数,同时依次装入结果,每装入一个新数字时原结果数乘2,实现正序填装 右移是消去右边的多余位,取余是消除左边的多余位

}

return result

}

void PrintBit(unsigned int number) // 按位输出,长度锁定为BITS

{

unsigned int i

for(i=BITSi>0--i)

{

printf("%d", (number>>(i-1))%2)

}

}

/*

时间:2016年10月30日15:43

平台:win7(64位)--cfree

测试结果:

输入 输出

0 00000000

1 10000000

2 01000000

3 11000000

174 01110101

255 11111111

注:暂不考虑输入超过255的情况。

*/

比特率:每秒钟传送的二进制位数,用 b / s 表示(b表示bit)

例如数据传送速率为120字符/秒,而每一个字符为10位,则其传送的比特率为10×120=1200位/秒=1200波特。

给个最佳答案啊


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8019858.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-12
下一篇2023-04-12

发表评论

登录后才能评论

评论列表(0条)

    保存