塘厦建设网站,连云港企业做网站,有谁认识做微网站的,项目计划书文件前置知识#xff1a;异或运算
异或运算介绍 异或有什么神奇之处#xff08;应用#xff09;#xff1f; #xff08;1#xff09;快速比较两个值 #xff08;2#xff09;我们可以使用异或来使某些特定的位翻转#xff0c;因为不管是0或者是1与1做异或将得到原值的相…前置知识异或运算
异或运算介绍 异或有什么神奇之处应用 1快速比较两个值 2我们可以使用异或来使某些特定的位翻转因为不管是0或者是1与1做异或将得到原值的相反值 3我们使用异或来判断一个二进制数中1的数量是奇数还是偶数 4校验和恢复 5经典题目不使用其他空间交换两个值 6最最常出现的面试题一个整型数组里除了N个数字之外其他的数字都出现了两次找出这N个数字
HashMap详解
必读参考文章
HashMap的长度为什么是2的幂次方
推荐阅读 今天在看面试指南里的HashMap看到HashMap长度为什么是2的幂次方时没太读懂特别是最后一段为什么一定要 是2的幂次方这个等式才成立这里也没有明说 经过一番查证才搞明白原来是因为2的幂次方的二进制表示只有一个1其余都是0。例如2的幂次方的二进制表示为1, 10, 100, 1000等等。现在考虑 length - 1它的二进制表示就是 length 的二进制表示中的所有1。例如如果 length 是 8那么 length - 1 的二进制表示就是 7 的二进制表示为 111。因此hash (length-1) 实际上就是保留 hash 的二进制表示中的低位忽略掉高位因为低位们就是余数。这样就能保证取模运算 hash % length 的效果和位运算 hash (length-1) 是一样的但是位运算的速度更快。 举例 hash1235length8 1235%83 12350100 1101 001170111 0100 1101 0011 0111 00113