RYIP在线题库
首 页   >   习题练习   >   提交
Problem1717--位运算算式

1717: 位运算算式

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

【 Description 】

位运算就是基于整数的二进制表示进行的运算。由于计算机内部就是以二进制来存储数据,位运算是相当快的。常用的运算符共 6 种,分别为与( & )、或( | )、异或( ^ )、取反( ~ )、左移( << )和右移( >>)。

与( & )或( | )和异或( ^ )这三者都是两数间的运算它们都是将两个整数作为二进制数,对二进制表示中的每一位逐一运算。

运算符 解释
& 只有两个对应位都为 1 时才为 1
| 只要两个对应位中有一个 1 时就为 1
^ 只有两个对应位不同时才为 1

举例:

5 = (101)2 
6 = (110)2 
5&6 = (100)2 
5|6 = (111)2 
5^6 = (011)2 

为了更好地给同学们讲解位运算,老师想把一次位运算写成竖式的形式(详见输出样例),请你写一个程序完成这个功能。


【 Input 】

输入两个正整数ab,以及一个运算符(运算符只可能是与( & )、或( | )、异或( ^))。

【 Output 】

前两行依次输出a和b的32位二进制表示。

第三行输出32个-(ASCII码45)。

第四行输出运算结果的32位二进制表示。


【 Sample Input 】

5 6 &

【 Sample Output 】

00000000000000000000000000000101
00000000000000000000000000000110
--------------------------------
00000000000000000000000000000100

【HINT】

对于 100\%100% 的数据,保证 1\le a,b\le 1e91a,b1e9,运算符仅包含&|^三种。

【 Source/Category 】