杂
SakuraRe
简书地址 https://www.jianshu.com/u/668558fcc7ce 博客园地址 https://www.cnblogs.com/sakura579/
刚刚加入CSDN 文章没有来得及搬过来 有兴趣可以去看看
目前大三 正准备考研
展开
-
为什么三次异或操作可以交换两个数
a和b是两个整数,经过以下三次异或操作,可以达到交换目的: a = a ^ b; b = a ^ b; a = a ^ b; 首先要理解,什么是^(异或)操作: 二进制两数运算结果: 0 ^ 0 = 0 0 ^ 1 = 1 1 ^ 0 = 1 1 ^ 1 = 0 相同为0,不同为1 假设: a = 10 , 其二进制数为: 1010 b = 12 , 其二进制数为: 1100 如果a和b交换,在二进制数看来,因为第一位和最后一位数相同,所以中间两位数只要交换一下就行了 这个交换的过程,因原创 2020-08-10 10:06:06 · 399 阅读 · 0 评论 -
0.1 + 0.2 不等于 0.3
>>> 0.1+0.2 0.30000000000000004 >>> >>> 0.1+0.2 == 0.3 False >>> round(0.1+0.2,1) == 0.3 True >>> 这个问题叫做 不确定尾数问题 不是只在python中存在 在很多编程语言中都存在 它涉及到了计算机对数字运算的内部实现原理 浮点数间运算存在不确定尾数,不是Bug 在计算机中所有数字都是由2进制表示 严格来说 53位二进原创 2020-08-10 09:57:35 · 161 阅读 · 0 评论