c语言程序求分析输出,求详细
voidmain(){charc=48;inti,mask=01;for(i=1;i<=5;i++){printf("%c",c|mask);mask=mask<<1;}...
void main()
{
char c=48;
int i, mask=01;
for(i=1; i<=5; i++)
{ printf("%c", c|mask);
mask = mask<<1; }
} 展开
{
char c=48;
int i, mask=01;
for(i=1; i<=5; i++)
{ printf("%c", c|mask);
mask = mask<<1; }
} 展开
1个回答
展开全部
48表示成二进制就是00110000
|叫按位或,会将两个操作数的对应位逐位进行或运算。
mask是掩码,初值为1,00110000|1=00110001=49,输出ASCII码49='1',mask左移一位变为10;
第二次循环00110000|10=00110010=50,输出ASCII码50='2',mask左移一位变为100;
第三次循环00110000|100=00110100=52,输出ASCII码52='4',mask左移一位变为1000;
第四次循环00110000|1000=00111000=56,输出ASCII码56='8',mask左移一位变为10000;
第五次循环00110000|10000=00110000=48,输出ASCII码48='0',mask左移一位变为100000。
因此最终输出12480。
|叫按位或,会将两个操作数的对应位逐位进行或运算。
mask是掩码,初值为1,00110000|1=00110001=49,输出ASCII码49='1',mask左移一位变为10;
第二次循环00110000|10=00110010=50,输出ASCII码50='2',mask左移一位变为100;
第三次循环00110000|100=00110100=52,输出ASCII码52='4',mask左移一位变为1000;
第四次循环00110000|1000=00111000=56,输出ASCII码56='8',mask左移一位变为10000;
第五次循环00110000|10000=00110000=48,输出ASCII码48='0',mask左移一位变为100000。
因此最终输出12480。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询