二进制计算

以二进制方式输入两个正整数,然后输入一个四则运算符,按short型计算这两个数的运算结果,并将结果按二进制输出。

例如:输入101 100 *

输出:10100

输入:101 100 +

输出:1001

#include<stdio.h>
#include<string.h>
int main(void){
    int len=sizeof(short)*8;
    char a[len],b[len],c;
    int aint=0,bint=0,i,res[sizeof(int)];
    while(scanf("%s %s %c",a,b,&c)!=EOF){
        aint=0;bint=0;
    for(i=0;i<strlen(a);i++){
        aint=aint*2+a[i]-'0';
        bint=bint*2+b[i]-'0';
    }
    while(i<strlen(a)){aint=aint*2+a[i]-'0';i++;}
    while(i<strlen(b)){bint=bint*2+b[i]-'0';i++;}
    switch(c){
        case '+':aint=aint+bint;break;
        case '-':aint=aint-bint;break;
        case '*':aint=aint*bint;break;
        case '/':aint=aint/bint;break;
    }
    i=0;
    while(aint){
        res[i]=aint%2;
        aint/=2;i++;
    }
    i--;
    while(i>=0){
        printf("%d",res[i]);
        i--;
    }
    printf("\n");
    }
    return 0;
}

猜你喜欢

转载自blog.csdn.net/u014128662/article/details/79464381