关于计算机2级C语言的题目。。求详解

#include <stdio.h>
main()
{ short c=124;
c=c___;
printf("%d\n",c);
}
若要使程序的运行结果为248,应在下划线处填入: <<1

这题不理解。。。。求具体详解。。。谢谢!!!

*2 或 <<1 都对。因为计算机是二进制的,所有的位运算操作:&、|、^、<<、>> 都是就二进制而言的。<< 表示左移位,>> 表示右移位。以十进制加以说明,如:12345 左移一位,就是 123450,多出来的位以零填充;右移一位就是 1234,那个 5 就丢失了。十进制大家已经习以为常,很明显可以看出来,左移一位增大十倍,右移一位减小十倍(忽略丢失的最低位)。在编程语言中,数值是这样存储的:不管该数值以几进制表示,它在计算机硬件中存储都是二进制,进行位运算都是二进制。如果你将一个数值左移一位, 是将它的二进制移一位。如 1 << 1 变为 10(二进制 10 等于十进制 2),1 << 2 变为 100(二进制 100 等于十进制 4),4 << 2 即二进制的 100 << 2 等于 10000(二进制 100 等于十进制 32),十进制的结论同样可以套用在二进制上,左移一位后数值就增大 2 倍,右移则减小到 1/2。
124(1111100) << 1 = 248(11111000)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-19
short c=124;//定义短整型变量c 并把124赋值给c
c=c_*2__;//c乘2并把结果赋值给C
printf("%d\n",c);//输出c的值 printf输出函数 \n 换行符
第2个回答  2012-08-19
*2
相似回答