C语言 设 int a=012,b=11,c=3;表达式a<<(c%b)的值是? 谢谢求讲解

2024-11-15 10:07:43
推荐回答(3个)
回答1:

int a=012表示一个八进制数,对应的二进制数为00000000 00000000 00000000 00001010(32位)
a<<(c%b)先计算c%b=3%11=3,a<<3左移3位,也就是00000000 00000000 00000000 01010000,即2^6+2^4=64+16=80
实际上<

回答2:

a<<(c%b)
先算括号内的c%b,%是取余运算符,即c÷b的余数,3÷11的商为0,余3;
再算a<<3,<<在C语言中是左移运算符,即是将a的二进制整体向左移动3个位;
a=12=8+4,二进制为00001100,
左移3位后为: 01100000,
左移3位后十进制为:64+32=96;
答案应是96。

回答3:

是0吧,,a=012??