问题
单项选择题
有以下程序:
#include <stdio.h>
main()
int a=5,b=1,t;
t=(a<<2)|b;printf("%d\n",t);
程序运行后的输出结果是
A) 21
B) 11
C) 6
D) 1
答案
参考答案:A
解析: 按位或运算符“|”是双目运算符,其功能是参与运算的两个数对应的二进位相或。左移运算符“<<”是双目运算符,其功能是把“<<”左边的运算数的各二进位全部左移若干位,由“<<”右边的数指定移动的位数,高位丢弃,低位补0。将5变换为二进制数为101,左移2位后为10100,1转换为二进制数为00001,10100与00001进行或运算后为10101,再将其转换为十进制数为21。因此,本题答案为A)。