异或
Aylwang
这个作者很懒,什么都没留下…
展开
-
华为机试-HJ15 求int值二进制的1的个数
题目描述输入一个int型的正整数,计算出该int型数据在内存中存储时1的个数。##题目分析利用位运算的右移,可以不断将最右边的二进制位挤掉,使得从右到左的每一位都可以当做最后一位,其与1相与,若为1,则当前二进制位为1,则计数+1;eg:3的二进制为0011;初始化cnt=0(1的个数)0011(x = 4) 与1(0001)相与,等于1 ,即得最后一位为1,cnt+1;将0011右移1位(x >> 1)得到001,与1(0001)相与,等于1,即得当前最后一位的实际的倒数第二位原创 2021-07-16 22:53:16 · 230 阅读 · 0 评论 -
剑指offer 56-2仅仅一个数x出现一次,其余出现三次,找x
题目描述在一个数组 nums 中除一个数字只出现一次之外,其他数字都出现了三次。请找出那个只出现一次的数字。示例 1:输入:nums = [3,4,3,3]输出:4示例 2:输入:nums = [9,1,7,9,7,9,7]输出:1##题目分析:可以用两种方法。位运算求和法。这种要注意求完和有可能会很大,超过int范围,所以要将和的变量定义为long,最后再强制转为int。/*class Solution { public int singleNumber(int[原创 2021-07-13 22:36:46 · 190 阅读 · 1 评论