C/C++题目--位运算

匿名 (未验证) 提交于 2019-12-02 23:43:01

题目:有这样一个巧妙的表达式:

a^=b^=a^=b;

它不需要临时变量就可以交换a和b的值。

答案

这不具有可移植性。它试图在序列点之间两次修改变量a,而这种行为是未定义的。例如,有人报告如下代码:

int a=123,b=7654;

a^=b^=a^=b;

在SCO优化C编译器下会把b置为123,把a置为0。

题目:取一个整数a从右端开始的4~7位。

【答案】

 main() { unsigned a,b,c,d; scanf("%o",&a); b=a>>4; c=~(~0<<4); d=b&c; printf("%o\n%o\n",a,d);  }

题目:一条语句实现x是否为2的若干次幂的判断。

【答案】

 

题目:求下面函数的返回值(微软)

 int fun(x) { int countx=0; while(x) { countx++; x=x&(x-1); } return countx; }

假定x=9999。

【答案】

8

文章来源: https://blog.csdn.net/chen1083376511/article/details/92001876
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!