设两个变量a=19;b=29;在不创建新实例的情况下使a、b的值互换

方法一:

参考答案:

这道题要求不创建新的实例,只有a、b两个变量,要交换这两个变量的值,通常的做法是使用临时变量来临时存储,但是现在要求不使用新的实例,那么有什么办法呢?

方法就是通过位运算来操作:

a = a ^ b;
b = a ^ b;
a = a ^ b;
对于题目中的a = 19,也就是对应二进制00010011;而b=29,也就是对应二进制00011101

第一步:a = 00010011 ^ 00011101 => 00001110,将a、b的值都记录下来了

第二步:b = 00001110 ^ 00011101 => 00010011(值为19,也就是b得到了原来的a的值)

第三步:a = 00001110 ^ 00010011 => 00011101 (值为29,也就是a得到了原来的b的值)

注意,^符号表示按位异或。所谓按位异或是指对应位置上的二进制数值相同为0,不同为1。

方法二:

a=a+b;
b=a-b;
a=a-b;

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 生活中不缺少美 而是缺少发现美的眼睛 赞美是一种以最低成本 换回最高回报的销售方式 是每个微商必须掌握的成交法宝 ...
    荻花令阅读 3,418评论 0 2
  • 本人博客地址:zhyoung.cn 博客打开太慢 编辑主题配置文件,注释一行代码: 编辑/themes/next/...
    Orient_ZY阅读 5,005评论 0 0
  • 你有“角标强迫症”吗?只要微信有红点,必须一一清除掉。只要程序、插件可更新,必须更新到最新版。还有些坏人,专门在自...
    汐米阅读 3,823评论 0 1
  • 今天我们上了语文课,我们学了《悯农》其二,我还会背。锄禾日当午,汗滴禾下土。谁知盘中餐,粒粒皆辛苦。这首诗的意思是...
    赵晨灿阅读 1,094评论 0 0

友情链接更多精彩内容