
今天朋友问这个问题,我百度了一下,看到你这个提问了,感觉解答都差强人意;
正好也做出来了,就顺便贴出来分享。
注:我这些文字你全复制了就能运行,核心函数是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波特。
给个最佳答案啊
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)