#include no1(),no2(),no3(),no4(),no5(),no6(),no7(),no8(),no9(),no10(),no11(),no12(),no13(),no14(),no15(),no16(),no17(),no18(),no19(),no20(),no21(),no22(),no23(),no24(),no25(); void menu(); int k=1;char m; char select; while(1) { system(\"cls\"); //清屏 menu(); system(\"color 0a\"); //绿化 scanf(\"%c\ switch(select) { case'a':no1();break; case'b':no2();break; case'c':no3();break; case'd':no4();break; case'e':no5();break; case'f':no6();break; case'g':no7();break; case'h':no8();break; case'i':no9();break; case'j':no10();break; case'k':no11();break; case'l':no12();break; case'm':no13();break; case'n':no14();break; case'o':no15();break; case'p':no16();break; case'q':no17();break; case'r':no18();break; case's':no19();break; case't':no20();break; case'u':no21();break; case'v':no22();break; case'w':no23();break; case'x':no24();break; } scanf(\"%d\ if(k==0)break; if(k==1){printf(\"\\n\");} } return 0; } void menu() { //printf(\"\\n 老师您好!我是通信2班的陈国昌 学号201130095092\\n\\n\"); printf(\" 请键入字母选择功能,按其他键退出:\\n\\n\"); printf(\" a.整数加法 h.小数乘法 o.八转十六 v.二进制加法运算\\n\\n\"); printf(\" b.整数减法 i.小数除法 p.十进转二 w.二进制减法运算\\n\\n\"); printf(\" c.整数乘法 j.二进转八 q.十进转八 x.二进制原补反码\\n\\n\"); printf(\" d.整数除法 k.二进转十 r.十转十六\\n\\n\"); printf(\" e.整除求余 l.二转十六 s.十六转二\\n\\n\"); printf(\" f.小数加法 m.八进转二 t.十六转八\\n\\n\"); printf(\" g.小数减法 n.八进转十 u.十六转十\\n\"); } void no1() { int i,k=1,sum1=0,sum2=0;char num[20],rem[20]; while(k==1){ printf(\"整数加法,请输入第一个数:\\n\"); scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\\n\");k=1;break;}}} k=1; while(k==1){ printf(\"请输入第二个数:\\n\"); scanf(\"%s\ for(i=0;rem[i]!=0;i++) {if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\");k=1;break;}}} printf(\"%d+%d=%d\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no2() { int i,k=1,sum1=0,sum2=0;char num[20],rem[20]; while(k==1){ printf(\"整数减法,请输入第一个数:\\n\"); scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\\n\");k=1;break;}}} k=1; while(k==1){ printf(\"请输入第二个数:\\n\"); scanf(\"%s\ for(i=0;rem[i]!=0;i++) {if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\");k=1;break;}}} printf(\"%d-%d=%d\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no3() { int i,k=1,sum1=0,sum2=0;char num[20],rem[20]; while(k==1){ printf(\"整数乘法,请输入第一个数:\\n\"); scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\\n\");k=1;break;}}} k=1; while(k==1){ printf(\"请输入第二个数:\\n\"); scanf(\"%s\ for(i=0;rem[i]!=0;i++) {if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\");k=1;break;}}} printf(\"%d*%d=%d\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no4() { int i,k=1,sum1=0,sum2=0;char num[20],rem[20]; while(k==1){ printf(\"整数除法,请输入第一个数:\\n\"); scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\\n\");k=1;break;}}} k=1; while(k==1){ printf(\"请输入第二个数:\\n\"); scanf(\"%s\ for(i=0;rem[i]!=0;i++) {if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\");k=1;break;}}} printf(\"%d/%d=%d\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no5() { int i,k=1,sum1=0,sum2=0;char num[20],rem[20]; while(k==1){ printf(\"整除求余,请输入第一个数:\\n\"); scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){sum1=sum1*10+num[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\\n\");k=1;break;}}} k=1; while(k==1){ printf(\"请输入第二个数:\\n\"); scanf(\"%s\ for(i=0;rem[i]!=0;i++) {if(rem[i]>47&&rem[i]<58){sum2=sum2*10+rem[i]-48;k=0;} else{printf(\"输入错误,输入的只能是0…9的数字,请重新输入:\");k=1;break;}}} i=sum1/sum2; printf(\"%d除%d商为%d余数为%d\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no6() { float x,y; printf(\"小数加法,请输入第一个数:\\n\"); scanf(\"%f\ printf(\"请输入第二个数:\\n\"); scanf(\"%f\ printf(\"%5.2f+%5.2f=%5.3f\\n\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no7() { float x,y; printf(\"小数减法,请输入第一个数:\\n\"); scanf(\"%f\ printf(\"请输入第二个数:\\n\"); scanf(\"%f\ printf(\"%5.2f-%5.2f=%5.3f\\n\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no8() { float x,y; printf(\"小数乘法,请输入第一个数:\\n\"); scanf(\"%f\ printf(\"请输入第二个数:\\n\"); scanf(\"%f\ printf(\"%5.2f*%5.2f=%5.3f\\n\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no9() { float x,y; printf(\"小数除法,请输入第一个数:\\n\"); scanf(\"%f\ printf(\"请输入第二个数:\\n\"); scanf(\"%f\ printf(\"%5.2f/%5.2f=%5.3f\\n\\n\ printf(\"键入1键继续,键入0键退出.\\n\"); } void no10() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"二进转八,请输入二进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]!='0'&&num[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入:\\n\");k=1;break;} else{sum=sum*2+num[i]-48;k=0;} }} for(j=0;j<=20;j++) { rem[j]=sum%8; if(sum<=7){rem[j]=sum;break;} else{sum=sum-sum%8;i=sum/8;sum=i;} } printf(\"二进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\} printf(\" 的八进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\} printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no11() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"二进转十,请输入二进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]!='0'&&num[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入:\\n\");k=1;break;} else{sum=sum*2+num[i]-48;k=0;} }} for(j=0;j<=20;j++) { rem[j]=sum%10; if(sum<=9){rem[j]=sum;break;} else{sum=sum-sum%10;i=sum/10;sum=i;} } printf(\"二进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\ } printf(\" 的十进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\ } printf(\"\\n键入1键继续,键入0键退出.\\n\"); }void no12() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"二转十六,请输入二进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]!='0'&&num[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入:\\n\");k=1;break;} else{sum=sum*2+num[i]-48;k=0;} }} for(j=0;j<=20;j++) { rem[j]=sum%16; if(sum<=15){rem[j]=sum;break;} else{sum=sum-sum%16;i=sum/16;sum=i;} } printf(\"二进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\} printf(\" 的十六进制表示为:\"); for(i=j;i>=0;i--) { if(rem[i]>9&&rem[i]<16){printf(\"%c\ else{printf(\"%d\ } printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no13() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"八进转二,请输入八进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]<56&&num[i]>47){sum=sum*8+num[i]-48;k=0;} else {printf(\"输入错误,输入的只能为0…7的数字,请重新输入:\\n\");k=1;break;} }} for(j=0;j<=20;j++) { rem[j]=sum%2; } if(sum<=1){rem[j]=sum;break;} else{sum=sum-sum%2;i=sum/2;sum=i;} printf(\"八进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\} printf(\" 的二进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\} printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no14() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"八进转十,请输入八进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]<56&&num[i]>47){sum=sum*8+num[i]-48;k=0;} }} else {printf(\"输入错误,输入的只能为0…7的数字,请重新输入:\\n\");k=1;break;} for(j=0;j<=20;j++) { rem[j]=sum%10; if(sum<=9){rem[j]=sum;break;} else{sum=sum-sum%10;i=sum/10;sum=i;} } printf(\"八进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\} printf(\" 的十进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\} printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no15() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"八转十六,请输入八进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]<56&&num[i]>47){sum=sum*8+num[i]-48;k=0;} else {printf(\"输入错误,输入的只能为0…7的数字,请重新输入:\\n\");k=1;break;} }} for(j=0;j<=20;j++) { rem[j]=sum%16; if(sum<=15){rem[j]=sum;break;} else{sum=sum-sum%16;i=sum/16;sum=i;} } printf(\"八进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\} printf(\" 的十六进制表示为:\"); for(i=j;i>=0;i--) { if(rem[i]>9&&rem[i]<16){printf(\"%c\ else{printf(\"%d\ } printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no16() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"十进转二,请输入十进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]<58&&num[i]>47){sum=sum*10+num[i]-48;k=0;} else {printf(\"输入错误,输入的只能为0…9的数字,请重新输入:\\n\");k=1;break;} }} for(j=0;j<=20;j++) { rem[j]=sum%2; if(sum<=1){rem[j]=sum;break;} else{sum=sum-sum%2;i=sum/2;sum=i;} } printf(\"十进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\} printf(\" 的二进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\} printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no17() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"十进转八,请输入十进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]<58&&num[i]>47){sum=sum*10+num[i]-48;k=0;} else {printf(\"输入错误,输入的只能为0…9的数字,请重新输入:\\n\");k=1;break;} }} for(j=0;j<=20;j++) { rem[j]=sum%8; if(sum<=7){rem[j]=sum;break;} else{sum=sum-sum%8;i=sum/8;sum=i;} } printf(\"十进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\ } printf(\" 的八进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\ } printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no18() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"十转十六,请输入十进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]<58&&num[i]>47){sum=sum*10+num[i]-48;k=0;} else {printf(\"输入错误,输入的只能为0…9的数字,请重新输入:\\n\");k=1;break;} }} for(j=0;j<=20;j++) { rem[j]=sum%16; if(sum<=15){rem[j]=sum;break;} else{sum=sum-sum%16;i=sum/16;sum=i;} } printf(\"十进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%d\ } printf(\" 的十六进制表示为:\"); for(i=j;i>=0;i--) { if(rem[i]>9&&rem[i]<16){printf(\"%c\ else{printf(\"%d\ } printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no19() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"十六转二,请输入十六进制数组:\\n\"); while(k==1){ scanf(\"%s\开始时我想到用getchar()的,但时做时输入都要把getchar()循环,很麻烦,所以就用scanf(\"%s\ for(i=0;num[i]!=0;i++)//num[i]!=0;的i值可以确定,下面会用到时。 {if(num[i]>47&&num[i]<58){rem[i]=num[i]-48;k=0;} //初始化k=0;下面若成功运行k继续为0。 else if(num[i]>&&num[i]<71){rem[i]=num[i]-55;k=0;} /*大写字母ABCDEF转化成10.11.12.13.14.15来存在num[i]数组里;一直不输错就k=0;自动跳出for循环。*/ else if(num[i]>96&&num[i]<103){rem[i]=num[i]-87;k=0;} //小写字母abcdef转化成10.11.12.13.14.15来存在num[i]数组里;一直不输错就k=0;自动跳出for循环。 else {printf(\"输入错误,只能输入数字0…9或大小写字母A…F,a…f.请重新输入:\\n\");k=1;break;} //若输错就令k=1;跳出循环重新提示输入。 }} for(i=0;num[i]!=0;i++){sum=sum*16+rem[i];} for(j=0;j<=20;j++) { rem[j]=sum%2; if(sum<=1){rem[j]=sum;break;}//sum<=1时直接把sum赋给rem[j]并跳出循环;因为不管sum怎么%2,它的余数都最小也只能是0和1。 else{sum=sum-sum%2;i=sum/2;sum=i;} } printf(\"十六进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%c\ } printf(\" 的二进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\ } printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no20() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"十六转八,请输入十六进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){rem[i]=num[i]-48;k=0;} else if(num[i]>&&num[i]<71){rem[i]=num[i]-55;k=0;} else if(num[i]>96&&num[i]<103){rem[i]=num[i]-87;k=0;} else {printf(\"输入错误,只能输入数字0…9或大小写字母A…F,a…f.请重新输 入:\\n\");k=1;break;} }} for(i=0;num[i]!=0;i++){sum=sum*16+rem[i];} for(j=0;j<=20;j++) { rem[j]=sum%8; if(sum<=7){rem[j]=sum;break;} else{sum=sum-sum%8;i=sum/8;sum=i;} } printf(\"十六进制数组:\"); for(i=0;num[i]!=0;i++) { printf(\"%c\} printf(\" 的八进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\} printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no21() { int i,j,k=1,sum=0;char num[20],rem[20]; printf(\"十六转十,请输入十六进制数组:\\n\"); while(k==1){ scanf(\"%s\ for(i=0;num[i]!=0;i++) {if(num[i]>47&&num[i]<58){rem[i]=num[i]-48;k=0;} else if(num[i]>&&num[i]<71){rem[i]=num[i]-55;k=0;} else if(num[i]>96&&num[i]<103){rem[i]=num[i]-87;k=0;} else {printf(\"输入错误,只能输入数字0…9或大小写字母A…F,a…f.请重新输入:\\n\");k=1;break;} }} for(i=0;num[i]!=0;i++){sum=sum*16+rem[i];} for(j=0;j<=20;j++) { rem[j]=sum%10; if(sum<=9){rem[j]=sum;break;} else{sum=sum-sum%10;i=sum/10;sum=i;} } printf(\"十六进制数组:\"); for(i=0;num[i]!=0;i++) { } printf(\"%c\ printf(\" 的十进制表示为:\"); for(i=j;i>=0;i--) { printf(\"%d\} printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no22() { int i,j,k=1,sum=0,sum1=0,sum2=0;// char num[20],rem[20],three[25]; printf(\"二进制加法请输入第一组二进制数组,按回车确定:\\n\"); while(k==1){ sum1=0; scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]!='0'&&num[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入第一组二进制数组:\\n\");k=1;break;} else{sum1=sum1*2+num[i]-48;k=0;} }} k=1; printf(\"请输入第二组二进制数组,按回车确定:\\n\"); while(k==1){ sum2=0; scanf(\"%s\ for(i=0;rem[i]!=0;i++) { if(rem[i]!='0'&&rem[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入第二组二进制数组:\\n\");k=1;break;} else{sum2=sum2*2+rem[i]-48;k=0;} }} sum=sum1+sum2; printf(\"它们的和为:%d ;\ for(k=0;k<=50;k++) { three[k]=sum%2; if(sum<=1){three[k]=sum;break;} else{sum=sum-sum%2;i=sum/2;sum=i;} } printf(\"用二进制表示为:\"); for(i=k;i>=0;i--) { printf(\"%d\ }printf(\".\"); printf(\"\\n\"); printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no23() { int i,j=0,k=1,sum=0,sum1=0,sum2=0; char num[20],rem[20],three[25]; printf(\"二进制减法请输入第一组二进制数组,按回车确定:\\n\"); while(k==1){ sum1=0; scanf(\"%s\ for(i=0;num[i]!=0;i++) { if(num[i]!='0'&&num[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入第一组二进制数组:\\n\");k=1;break;} else{sum1=sum1*2+num[i]-48;k=0;} }} k=1; printf(\"请输入第二组二进制数组,按回车确定:\\n\"); while(k==1){ sum2=0; scanf(\"%s\ for(i=0;rem[i]!=0;i++) { if(rem[i]!='0'&&rem[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入第二组二进制数组:\\n\");k=1;break;} else{sum2=sum2*2+rem[i]-48;k=0;} }} sum=sum1-sum2; printf(\"它们的差为:%d ;\ if(sum<0){sum=-sum;j=1;} for(k=0;k<=50;k++) { three[k]=sum%2; if(sum<=1){three[k]=sum;break;} else{sum=sum-sum%2;i=sum/2;sum=i;} } printf(\"用二进制表示为:\"); if(j==1){printf(\"-\");} for(i=k;i>=0;i--) { printf(\"%d\ }printf(\".\"); printf(\"\\n\"); printf(\"\\n键入1键继续,键入0键退出.\\n\"); } void no24()//二进制数原反补码 { int h=0,i,j=0,k=1,l=0,sum=0,sum1=0,sum2=0; char num[10],rem[10],three[10]; printf(\"二进制原反补码\\n\\n请输入一组位数为1…7位的二进制数组正数不用带+号,负数要带-号,按回车确定:\\n\"); while(k==1){ sum1=0; scanf(\"%s\ if(num[0]==45){num[0]='0';h=1;} //判断输入的第一个字符是不是负号,如果是,就让它等于0,并令h=1,使下一步执行负数的求原反补码。 for(i=0;num[i]!=0;i++) { if(num[i]!='0'&&num[i]!='1'){printf(\"输入错误,输入的只能是0和1,请重新输入:\\n\");k=1;break;} else{sum=sum*2+num[i]-48;k=0;} }} if(h==0){//原来h就已经赋初值为0,默认输入正数就执行这一个模块。 printf(\"它的原码为:\"); printf(\"0\"); for(l=7-i;l>0;l--){printf(\"0\");} for(l=0;lprintf(\" 反码为:\"); printf(\"0\"); for(l=7-i;l>0;l--){printf(\"0\");} for(l=0;lfor(l=7-i;l>0;l--){printf(\"0\");} for(l=0;lelse {/*定义了一个新数组three[10]用以记录反码数组,为下面的补码比反码大1作一个准备,*/ //当输入负数时会检测到负号并令h=1,使上面的模块就不能执行而执行这一模块。 printf(\"它的原码为:\"); printf(\"1\");//不管负数是多少,第一个都是1;所以输出1;(注意的是不能加\\n来换行) for(l=8-i;l>0;l--){printf(\"0\");} /*我是这样想的,当输入一个三位的负数,若输入的是-110时, 我在上面已经把这个数组变成了0110,并使i记录下了位数是3+1=4位, 所以除去开头的1占了一位,余下的还有8-1-i(i我现在假设是4)=3位, 这3位的座次依次是[1],[2]…[7-i],这个范围的数组都可以直接输出0, 而之前又把负号变成了0,所以实际操作时直接把[1],[2]…[8-i]的位置输出作0;(不能加\\n换行)*/ for(l=1;lprintf(\" 反码为:\"); for(l=8-i;l>0;l--){printf(\"1\");three[l]=1;} /*除去第一位及从[9-i]…[7](即最后一位),的都输出1,并在数 */ j=9-i; for(l=0;l//上面两行代码确定了数组three[]从第9-i位开始至数级最后一位的值 sum=0; for(l=1;l<9;l++){sum=sum*2+three[l];} printf(\"补码为:\"); h=1; //three数组记录了反码,求和 sum=sum+1; if(sum>254){printf(\"000000000\");h=0;} /*这里用以判断用户是不是输入-1111111; 因为输入这样的数后反码会变成11111111, 加一后变成100000000,共九位,而实际规定要写成00000000, 所以有点不按常规*/ while(h==1){/*上面判断到输入的不是-1111111时h的值依然为1, 按常规执行这一模块把数%2后以数组形式输出。*/ for(j=0;j<=7;j++) { num[j]=sum%2; if(sum<=1){num[j]=sum;break;} else{sum=sum-sum%2;i=sum/2;sum=i;} } for(i=j;i>=0;i--){printf(\"%d\h=2; } } printf(\"\\n键入1键继续,键入0键退出.\\n\"); }
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- 7swz.com 版权所有 赣ICP备2024042798号-8
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务