二進制計算

以二進制方式輸入兩個正整數,然後輸入一個四則運算符,按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;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章