问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

4位二进制加法 c语言程序如何编写 急用

发布网友 发布时间:2022-09-19 13:15

我来回答

2个回答

热心网友 时间:2023-10-28 02:20

//...
//自己编译下试试。
//专门为你写的啊,如果可用一定要给分哦。
#include <stdio.h>
#include <stdlib.h>

#define ERR printf
/*
char *myItoa (int n,const char * ch)
{
¡¡sprintf(ch,"%d",n);
¡¡return ch;
}
*/
/*
int binA2Dec(char * ch,int len)
{
int sum,i;
sum = 0;

for(i=len-1;i>=0;i--)
{
sum = sum*2 + (ch[i] - '0');
}
return sum;
}
*/

#define MAX_BIT 4 //可以定义任意位的加减。
int M_num(int base,int b)
{
int tmp;
int multi = 1;

for(tmp=b;tmp;tmp--)
multi = multi * base;

return multi;
}

typedef enum
{
false,
true
}bool;

bool checkBuf(char * ch)
{
int i,j;

if(ch[MAX_BIT] != 0)
{
i = MAX_BIT;
ERR("\nOnly %d bits need!!\n",i);
return false;
}

for(i=0;i<MAX_BIT;i++)
{
if((ch[i] != '0') && (ch[i] != '1') && (ch[i] != 0) )
{
ERR("\nInput binary data,you must reInput!\n");
return false;
}
if(ch[i] == 0)
{
for(j=i-1;j>=0;j--)
{
ch[j+1] = ch[j];
}
ch[0] = '0';
}
}
return true;
}

int bin2Dec(int num)
{
int sum,fig,tmp,numNext;

// Initialization.
numNext = num;
sum = 0;
tmp = 1;

for(;;)
{
fig = numNext%10; // Get lowest number
sum = sum + fig*tmp;

tmp = tmp * 2;
numNext = numNext/10;
if(!numNext)
return sum;
}
}

int dec2bin(int num)
{
int sum,fig,tmp,numNext;

//Initialization
numNext = num;
sum = 0;
tmp = 1;

for(;;)
{
fig = numNext%2; //get current parity digit.
sum = sum + fig*tmp; //sum of demical number add parity.

tmp = tmp*10;
numNext = numNext/2;
if(!numNext)
return sum;
}
}

int main(int argc, char *argv[])
{
char Num1[MAX_BIT+1],Num2[MAX_BIT+1],sum[MAX_BIT+1];
int Number1,Number2,sumNum;
int i;

//Initialize the arrry.
for(i =0;i<(MAX_BIT+1);i++)
{
Num1[i]= Num2[i] = 0;
}

//Process to get input number
//And check the validity of input
printf("\nPlease input number1:\n");
scanf("%s",Num1);
if(!checkBuf(Num1))
{
system("PAUSE");
return 0;
}

printf("\nPlease input number2:\n");
scanf("%s",Num2);
if(!checkBuf(Num2))
{
system("PAUSE");
return 0;
}

// Get number from array.
Number1 = atoi(Num1);
Number2 = atoi(Num2);

// Convert binary data to demical data
Number1 = bin2Dec(Number1);
Number2 = bin2Dec(Number2);

// Sum of two number.
sumNum = Number1 + Number2;
// Convert from demical data to binary data.
sumNum = dec2bin(sumNum);

// Get char array
itoa(sumNum,sum,10);

// Output
if(sumNum >= M_num(10,MAX_BIT) )
{
sumNum=MAX_BIT;
printf("\nThe sum overflow %d bit ..",sumNum);
}

printf("\nthe sum is|%s|\n\n",sum);
system("PAUSE");
return 0;
}

热心网友 时间:2023-10-28 02:20

char a,b,x;
char c;//进位标志
x = (a+b);
c = (x &0x10)>>4;
x = x & 0x0f;
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
写论文值得推荐的app 写论文app大全汇总 有啥好用又免费的文献查阅网站吗? 高仿苹果手机关机关不了机?是怎么回事?有那个朋友请告知! 高仿苹果6开机就是白屏黑苹果,关机关不了 怎么把电子相册保存到QQ空间相册 整个乡村音乐史上,最动人的25首歌 写给狗的歌 右侧肢体肌力4级是什么意思 肌力分级的评定标准 肌力4级是什么意思 衣服领口洗好之后变大了,怎么补救法 女生喝什么样的红酒好 请问一下在你我贷上提前还款费用怎么算 请问在你我贷上提前还款费用怎么算 外交部正告美方“中国人民解放军绝不会坐视不管”,释放了哪些信号? 政策释放信号你懂了吗? 冬天吃什么补充果蔬营养好?自然阳光有哪款饮品富含果蔬营养? 有人知道这种胶布叫什么名吗?一卷一卷,我想买,但不知道叫什么名。可以贴在不锈钢上的。。 中文简历翻译英文简历 小朋友不太爱吃正食,吃什么可以补充营养啊? 怎么写自我评价报告册 洗澡把太阳能热水器里面的水放干了,导致现在水流量很慢怎么回事 太阳能热水器没热水怎么回事,清了一下水垢,然后装好使用却没热水 小朋友可以吃什么补充营养?有推荐的吗? 宝宝吃什么补充营养 儿童补充营养吃什么? 小孩子吃什么才有营养 怎么在平板上使用钉钉软件啊。 苦瓜蛋汤的做法 想知道: 从惠州市到双月湾怎么坐公交 已知全加器封装电路,如何实现两个四位二进制数的加法运算?例如,a=a3a2a1a0,b= 平时生活中,我们会在玻璃罐装各种各样的东西,难免留下异味,该如何去除呢? 门球打擦边球的关键有哪些? 门球擦边球的基本原理是什么? 《十月围城》中的阎孝国? 电影《十月围城》里王复明,刘郁白,阎孝国和沈重阳他们四个谁最厉害? 六盘水北大培文学校和六盘水航宇中学哪个更好 六盘水北大培文学校怎么样?教学质量如何呢? 门球击球的施力方法有几种? 夏季蔬菜保鲜妙招 火车头采集器怎么用的?求详细教程 经常神经性头疼要做什么检查? 神经性头疼怎么治疗、要不要做CT呢 脑神经痛需要做ct吗 建设银行交通分理处是什么意思 第五人格可以开麦吗 打好门球擦边球的决巧。 什么是微信挂号? 有一个炫酷图片上边有一个红色和蓝色的小提琴是什么 可以把你的弦舞八彩虹相关的音乐发给我吗,谢谢了。《赛马》之类的。 zhjjie89@gmail.com