求二进制的加法,输入两个四位二进制数,求其和(二进制表示)。
2007-04-17 16:36
369 查看
/*******************内容:四位二进制加法*****************************/
/*********方法:先当作十进制相加,然后把结果转化为二进制*************/
/***********************by:fohonet**********************************/
#include <stdio.h>
#define MAX_LEN 4
main()
{
int num_a,num_b; /*定义两个二进制*/
int sum_c; /*定义结果*/
int a[MAX_LEN],i,t=0; /*t为进位标志*/
scanf("%d%d",&num_a,&num_b);
sum_c=num_a+num_b;
for(i=0;i<MAX_LEN;i++)
{
switch(sum_c%10) /*取余*/
{
case 0:a[i]=0+t;
t=0;
break;
case 1:a[i]=1+t;
if(a[i]==2) {a[i]=0;t=1;}
else t=0;
break;
case 2:a[i]=t;t=1;break;
}
sum_c=sum_c/10; /*求整*/
}
if(t==1) a[i]=1; /*判断最高位*/
else a[i]=0;
printf("%d/n",i);
while(i>=0) printf("%d",a[i--]);
printf("/r/n");
}
====================================
输入:0101 1010
输出: 01111
/*********方法:先当作十进制相加,然后把结果转化为二进制*************/
/***********************by:fohonet**********************************/
#include <stdio.h>
#define MAX_LEN 4
main()
{
int num_a,num_b; /*定义两个二进制*/
int sum_c; /*定义结果*/
int a[MAX_LEN],i,t=0; /*t为进位标志*/
scanf("%d%d",&num_a,&num_b);
sum_c=num_a+num_b;
for(i=0;i<MAX_LEN;i++)
{
switch(sum_c%10) /*取余*/
{
case 0:a[i]=0+t;
t=0;
break;
case 1:a[i]=1+t;
if(a[i]==2) {a[i]=0;t=1;}
else t=0;
break;
case 2:a[i]=t;t=1;break;
}
sum_c=sum_c/10; /*求整*/
}
if(t==1) a[i]=1; /*判断最高位*/
else a[i]=0;
printf("%d/n",i);
while(i>=0) printf("%d",a[i--]);
printf("/r/n");
}
====================================
输入:0101 1010
输出: 01111
相关文章推荐
- C++ 算法之 输入两个整数m n,求计算需要改变m的二进制表示中的多少位才能得到n
- 位运算训练03—输入一个整数a,再输入两个整数p1,p2(p1,p2<32);将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出
- c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
- 位运算训练04—输入一个整数a,再输入两个整数p(p<32),v(0|1);将该整数a的p位设置为v,输出修改后的该整数的二进制表示
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 28.整数的二进制表示中1的个数 题目:输入一个整数,求该整数的二进制表达中有多少个1。 例如输入10,由于其二进制表示为1010,有两个1,因此输出2。
- 输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- Linux_C练习:输入一个整数a,再输入两个整数,输出该整数的二进制表示方法中从右端开始给定位;
- 输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n。
- 2.2题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- 2.输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- c语言:输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
- 2.3题目:输入一个整数a,再输入两个整数p1,p2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p2位取反后输出
- 输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 4.输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 输入一个整数a,再输入两个整数p1ip2(p1,p2<32),将该整数的二进制表示方法中从右端开始的p1到p2位i
- 2.4 题目:输入一个整数a,再输入两个整数p(p<32),v(0|1),将该整数a的p位设置为v,输出修改后的该整数的二进制表示.
- 输入一个整数a,再输入两个整数p1,p2(p1,p2<32),输出该整数的二进制表示方法中从右端开始的p1到p2位.
- 输入两个整数m和n,计算需要改变m的二进制表示中的多少位才能得到n
- 输入一个整数,求该整数的二进制表达中有多少个1。例如输入10,由于其二进制表示为1010,有两个1,因此输出2。