A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘印 黑马帝   /  2015-11-1 23:36  /  443 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

1,请用最高的效率写出2乘以8的式子?
答案:2左移3位: 2<3
2,请把两个数据交换:例如 int a = 10; int b = 20;  交换结果: a = 20 ; b = 10;
这里有两种方法:1
                        int temp = a;
                            a = b;
                            b = temp;

                        2.

14 个回复

倒序浏览
2  a = a^ b;
    b = a^ b;
    a = a^ b;    或者
                              b = a ^ b;
                              a  = a^  b;
                              b   = a^  b;
回复 使用道具 举报
第二题不太懂,考察的是什么知识点
回复 使用道具 举报
还有一种方式不常用:  这种方式不推荐用的原因是:有可能超出int的取值范围!
a = a + b;
b = a -  b;
a = a -  b;
回复 使用道具 举报
变量交换................
回复 使用道具 举报
很简单啊.
回复 使用道具 举报
雨来 高级黑马 2015-11-2 12:37:09
7#
sop(2<<3);
回复 使用道具 举报
hbcoding 发表于 2015-11-2 10:29
第二题不太懂,考察的是什么知识点

一个数连续跟同一个数异或两次还是之前的数
回复 使用道具 举报
感谢分享
回复 使用道具 举报
第二个考的是 异或啊 一个数异或两次 还是他本身啦!!!
回复 使用道具 举报
2楼才是正解
回复 使用道具 举报
第三种方法:
a=a+b;
b=a-b;
a=a-b;
这种方法不推荐,因为a+b可能会超出int取值范围
回复 使用道具 举报
hbcoding 发表于 2015-11-2 10:29
第二题不太懂,考察的是什么知识点

位运算和异或运算,转成二进制就好理解了。
回复 使用道具 举报
66666666666666
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马