- 博客(3)
- 收藏
- 关注
原创 算法训练第一章 位运算的妙用后几题
题5:将整数的奇偶位互换 例如:0001001奇偶位互换的结果为0000110 思路1:用一个大循环,相邻位直接交换,但是不同的是,步进的长度变为2。 思路2: private static int m(int i){ int even=i&(0xaaaaaaaa);//和1010 1010 1010.....做与运算 int odd=i&(0x55555555);//和0101 0101 0101.....做与运算 return (even>>
2021-08-17 14:13:20 66
原创 算法训练第一章 题1后补充训练
题2:找出落单的那个数 一个数组里除了某一个数字之外,其它的数字都出现了两次。请写程序找出这个只出现一次的数字。 思路:只需要将这个数组里的所有元素依次全部异或,成对的就会被消掉,最后保留的就是答案。 题3:二进制中1的个数 请实现一个函数,输入一个整数,输出该数二进制表示中1的个数。 例:9的二进制表示为1001,有2位是1 思路1:将一个整数展开,无非就是32位。前面说过 ...
2021-08-17 12:49:35 64
原创 算法训练第一章:位运算的妙用
第一节 如何找数组中唯一成对的那个数? 知识点1 位运算符 在处理整形数值时,可以直接对组成整形数值的各个位进行操作。因此,可以利用“屏蔽技术”获得整数中的各个位 Java中的位运算符主要有:&(与),|(或),^(异或),~(非),这里需要注意,位运算与平常用的比较多的逻辑运算(如:逻辑与&&,逻辑或||)的区别。个人认为,可以这样进行记忆:计算机处理数据常以字节(8位)为单位,位运算相当于对每个字节中单个位进行操作,而逻辑与与逻辑或,实际上可以理解为对一整组数据进行操作..
2021-08-17 01:40:22 110
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人