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

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

/

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

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

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

/

# include <stdioh>

# 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=0; i<BITS; ++i) // (核心语句)

{

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

}

return result;

}

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

{

unsigned int i;

for(i=BITS; i>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的情况。

/

int i=10,j;

printf("请输入一个字符串\n");

scanf("%s",string[i]);

这里100位的字符数组,这只输入了一个字符啊,输入给第10位的字符了。

这时i = 10,你用for循环从0到i - 1遍历一遍,这个范围内的字符都没有初始化啊。

在这里你想做的是把原字符数组倒置,也就是把string的值改变了。我告诉你个不用改变string值的方法啊。

你可以多定义一个int型的变量length来记录当前string的长度,当然,初始值为0。用一个while语句,用个getchar()循环输入单个字符,同时length加1;遇到回车符结束循环。string的值就这么确定好了。

要倒序输出string,就可以从length - 1位 到 0 位遍历一遍string,同时用putchar()输出对应的字符。这样string在没有改变值的情况下,输出了倒序的样子啦。

你看看行不行。

#include <iostreamh>

main()

{

char a[9],b[9];

char p1,p2,p3,p4;

int count,fg;

cout<<"输入一个基本数:";

cin>>a;

cout<<endl<<"输入基本数的一个变序数:";

cin>>b;

count=0;

p2=b;

while(p2){

fg=0;

for(p1=a;p1;p1++)

if(p1==p2)

{

fg=1;

break;

}

if(fg){

for(p3=a;p3<p1;p3++)

for(p4=p2+1;p4;p4++)

if(p3==p4)count++;

}

p2++;

}

cout<<"逆序数为:"<<count;

system("pause");

return 0;

}

上述代码经编译通过

以上就是关于一个8比特的数,要求编写一端C程序实现位倒序功能.全部的内容,包括:一个8比特的数,要求编写一端C程序实现位倒序功能.、编写程序,使输入的字符串倒序输出:、用C++写一个求逆序数的程序.等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

原文地址:https://54852.com/zz/10108073.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存