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
实际上<
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。
是0吧,,a=012??