1.10.3 位运算(2)
《程序员面试笔试真题与解析》本书针对当前各大 IT企业面试笔试中特性与侧重点,精心挑选了 3年以来近百家典型 IT企业的面试笔试真题,这些企业涉及业务包括系统软件、搜索引擎、电子商务、手机 APP、安全关键软件等,面试笔试真题非常具有代表性与参考性。本节为大家介绍位运算。
- 作者:猿媛之家来源:机械工业出版社|2017-12-06 17:17
有奖调研 | 1TB硬盘等你拿 AI+区块链的发展趋势及应用调研
1.10.3 位运算(2)
【真题 151】 &和&&的区别是什么?
答案:以下将分别对 &与&&进行说明。
&是按位与操作符, a&b是把 a和 b都转换成二进制数后,然后再进行按位与的运算。而 &&为逻辑
与操作符,a&&b就是当且仅当两个操作数均为 true时,其结果才为 true,只要有一个为 false,a&&b的结果就为 false。此外,&&还具有短路的功能,在参与运算的两个表达式中,只有当第一个表达式的返回值为 true
的时候,才会去计算第二个表达式的值,如果第一个表达式的返回值为 false,则此时&&运算的结果就为 false,同时,不会去计算第二个表达式的值,例如: if(i!=0 && i++>10),当 i的值为 0的时候,表达式 i!=0的返回值为 false,因此,此时将不会执行第二个表达式 i++>10的判断。
【真题 152】有如下代码:
- unsigned short A = 10;
- printf("~A = %u\n", ~A);
- char c = 128;
- printf("c=%d\n", c);
程序的输出是()。
A.10,128 B.-11,-128 C.4294967285,-128 D.-11,128
答案:C。
【真题 153】表达式 4&7的运算结果是()。
A.4 B.1 C.6D.7 答案:A。 &(与)是二进制与操作运算符,其功能是参与运算的两数对应的二进位进行与操作。只有对应的
两个二进位均为 1时,结果位才为 1,否则为 0。
本题中,十进制数字 7的二进制表示为 0111,十进制数字 4的二进制表示为 0100,这两个制数相与的结果为 0100,对应的十进制数为 4。所以,选项 A正确。
【真题 154】 x为整型,请用位运算实现 x%8。
答案:(x<<28)>>28。
有人觉得 x&7可以,但是当 x为负数的时候,这种方法就得不到正确的结果了。
【真题 155】执行“ int x=1;int y=~x;”语句后,y的值为()。
答案:-2。
假设在机器中, int型变量占用 2个字节,那么,整数 1的二进制表示是 0000 0001 ,~为按位取反运算符,所以,对 x取反后, 0000 0001变为 1111 1110,在计算机中整数用补码形式表示,正数的补码是它本身,而负数的补码则是原数值除符号位按位取反再加一,由补码求原数值也是按位取反再加一,那么 1111 1110除符号位按位取反再加一变成 1000 0010,即-2。
【真题 156】有如下代码:
- int func(int x){
- int count=0;
- while (x)
- {
- count++;
- xx=x&(x-1);//与运算
- }
- return count;
- }
当 x=9999时,函数的返回值是()。
A.8 B.9 C.10 D.12答案:A。一个数与这个数减 1的结果进行按位 &运算,结果为:这个数二进制数昀右边的 1变为 0。所以,
该函数的本质为计算一个数的二进制中 1的个数,由于十进制数 9999的二进制表示为 10011100001111,共有 8个 1。所以,选项 A正确。
喜欢的朋友可以添加我们的微信账号:
51CTO读书频道二维码
51CTO读书频道活动讨论群:365934973
回书目 上一节 下一节 |
- 大家都在看
- 猜你喜欢
- 24H热文
- 一周话题
- 本月最赞
- 3.3.1.1 标准9针串口引脚定义8.2.8 drawRoundRect方法:绘制圆角矩形4.5.1 登录页面login.jsp2.6.1 @Produces注解一、中国制造2025主要内容Python即学即用深入理解Spring Cloud与微服务构建12.2 使用DROP INDEX删除索引
- 3.3.1.1 标准9针串口引脚定义一、中国制造2025主要内容8.2.8 drawRoundRect方法:绘制圆角矩形7.2.3 用ALTER TABLE语句来创建索引2.6.1 @Produces注解深入理解Spring Cloud与微服务构建12.2 使用DROP INDEX删除索引8.2.12 drawArc方法:绘制圆弧
- 3.3.1.1 标准9针串口引脚定义深入理解Spring Cloud与微服务构建8.2.8 drawRoundRect方法:绘制圆角矩形一、中国制造2025主要内容7.2.3 用ALTER TABLE语句来创建索引2.3 三角函数的图像12.2 使用DROP INDEX删除索引2.6.1 @Produces注解
视频课程+更多
-
Shell运维自动化高级实战视频课程[老男孩Linu
讲师:老男孩107285人学习过
-
零基础新版CCNA教学(真实案例结合)视频课程
讲师:吴群35696人学习过
-
C语言从零到实战视频课程
讲师:武永亮44091人学习过
最新专题+更多
- 精选博文
- 论坛热帖
- 下载排行
读 书 +更多
跨越网络工程师必备训练
本书是根据全国计算机技术与软件专业资格(水平)考试“网络工程师级考试大纲”编写的考试辅导用书。全书主体按考试大纲的章节编排,分上、...
-
订阅51CTO邮刊
点击这里查看样刊