1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
| #define _CRT_SECURE_NO_WARNINGS #include<stdio.h>
void menu() { printf("****************************\n"); printf("*** 1—>'+' 2—>'-' ***\n"); printf("*** 3—>'*' 4—>'/' ***\n"); printf("*** 5—>'>>' 6—>'<<' ***\n"); printf("*** 7—>'&' 8—>'|' ***\n"); printf("*** 9—>'^' ***\n"); printf("****************************\n"); printf("*** 0.exit ****\n"); printf("****************************\n"); }
int add(int x, int y) { return x + y; }
int sub(int x, int y) { return x - y; }
int mul(int x, int y) { return x * y; }
int divs(int x, int y) { return x / y; }
int Shift_right_bit(int x, int y) { return x >>= y; }
int Shift_left_bit(int x, int y) { return x <<= y; }
int Bitwise_with(int x, int y) { return x & y; }
int Bitwise_or(int x, int y) { return x | y; }
int Bitwise_XOR(int x, int y) { return x ^ y; }
void Print_Binary(unsigned int x) { if (x > 1) { Print_Binary(x >> 1); } putchar((x & 1) ? '1' : '0'); }
int main() { int input = 0; int (*pf[10])(int, int) = { NULL,add ,sub,mul,divs,Shift_right_bit,Shift_left_bit,Bitwise_with,Bitwise_or,Bitwise_XOR}; do { menu(); printf("请选择:"); scanf("%d",&input); if (input >= 1 && input <= 9) { int x = 0; int y = 0; int z = 0; printf("请输入操作数:"); scanf("%d %d",&x,&y); z = pf[input](x,y); printf("十进制结果:%d\n",z); printf("二进制结果:"); Print_Binary(z); printf("\n"); } else if(input==0) { printf("《退出》"); } else { printf("输入错误,重新输入"); }
} while (input);
return 0; }
|