首页 > 编程知识 正文

十进制转二进制算法流程图,十进制与十六进制的转换计算器

时间:2023-05-06 02:05:00 阅读:34893 作者:36

题目:分别编写把十进制整数转化为二进制和把二进制整数转化为十进制整数的函数,并编写主程序调用它们,以验证其正确性。

【算法】:将十进制整数转化为二进制整数的算法是:将十进制数除以2,得到一个商数和一个余数;再将商数除以2,又得到一个商数和一个余数;继续这个过程,直到商数为0为止。每次得到的余数(必定是0或1)就是对应二进制的各位数字。最后一次得到的余数为二进制的最高位,第一次得到的为二进制的最低位。

将二进制数转化为十进制数的算法是:将二进制数的各位数字乘以2的n次方再相加,其中n等于相应二进制数数字的位序号(从该整数的末位数起)减1;这样得到的和就是所求的十进制数。

【流程图】

shi_zhuan_er的流程图

i=0,静态数组a[24]

输出提示(printf (将十进制转换为二进制(n ) ); )

n0

k=n%2; n=(n-k )/2; a[i]=k; I;

i=23

输出a[i](printf('%d ',a[I] ); )

i=i-1

换行

返回

er_zhuan_shi的流程图:

m=0

输出提示(printf(2 (将二进制转换为十进制(n ) ); )

i=0

i=n

k=n-I-1; m=a[I]*pow(2,k ) m;

i=i 1

输出m(printf('%d ',m ); )

返回

因为主函数很简单,所以省略流程图。

【程序列表】:

/*5.c*/

#include'stdio.h '

#include'math.h '

void shi_zhuan_er(int n )

{int k; int i=0;

静态int a [ 24 ]

printf (将十进制转换为二进制(n );

wile(N0 ) )。

{k=n%2; n=(n-k )/2; a[i]=k; I; }

for(I=23; i=0; I----)

printf('%d ',a[i] );

printf((n );

返回;

}

 

voider_Zhuan_Shi(inta[],int n ) )。

{int k,I; int m=0;

printf(2 (将二进制数转换为十进制数(n );

for(I=0; i=n-1; I )

{k=n-i-1; m=a[I]*pow(2,k ) m; }

printf('%d ',m );

返回;

}

 

Void主() )

{char c; int n,I; int a[24];

printf ((将n十进制转换为二进制,或将二进制转换为十进制(se ) :(n ) );

扫描((n % c )、c );

if(c=='s ' )

{printf (输入数据:n ); scanf('%d ',n );

Shi_Zhuan_er(n;

}

elseif(c=='e ' ) )。

{printf (输入数据的位数:(n ) );

scanf('%d ',n );

printf ('输入数据(输入数字后请用空格分隔) :n );

for(I=0; in; I ) scanf('%d ',a[i];

er_Zhuan_Shi(a,n );

}

}

【运转结果】

是将十进制转换为二进制还是将二进制转换为十进制(se ) :

s

输入数据:

123

将十进制转换为二进制:

000000000000000001111011

重新运行:

是将十进制转换为二进制还是将二进制转换为十进制(se ) :

e

输入数据的位数:

6

输入数据(输入数字后请用空格分隔) :

1 0 1 0 1 1

将二进制数转换为十进制数:

43

转载于:https://www.cn blogs.com/sxmcacm/p/3388915.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。