早教吧 育儿知识 作业答案 考试题库 百科 知识分享

C语言位运算问题下列程序的运行结果是.main(){unsignedc1=0xff,c2=0x00;c1=c2|c1>>2;c2=c1^0236;printf(“%x,%x\n”,c1,c2);}A)0x3f,0XA1B)3f,A1C)ffff,61D)3f

题目详情
C语言位运算问题
下列程序的运行结果是_______.
  main()
  { unsigned c1=0xff,c2=0x00;
  c1=c2|c1>>2;c2=c1^0236;
  printf(“%x,%x\n”,c1,c2);
  }
 A)0x3f,0XA1 B)3f,A1 C)ffff,61 D)3f,a1
求高人解释一下这个问题,我算的答案都不对,答案应该是选D
▼优质解答
答案和解析
是选D
首先要知道c1的二进制是11111111,c2是0
c1右移两位就是00111111,与c2位或就得0011111111,所以c1值变为3f
然后c1是00111111,026为10011110,取位异或得10100001,所以c2值变为a1
看了C语言位运算问题下列程序的运行...的网友还看了以下: