- 博客(5)
- 收藏
- 关注
原创 JAVA原子类AtomicInteger源码阅读笔记
JAVA原子类AtomicInteger源码阅读笔记最近在为春招实习复习,所以也看了些java并发包的源码,打算记个笔记。首先展示一些 AtomicInteger里持有的属性。private static final long serialVersionUID = 6214790243416807050L;private static final Unsafe U = Unsafe.get...
2020-03-13 16:43:54
212
原创 通过按位运算计算二进制数字的乘法和除法
乘法比如有两个数字13=(1101),9=(1001),此时计算两者的乘法可以从13的最低位往最高位遍历,如第一个为1,则有1001,第二位为0跳过,第三位为1,则再加上1001左移2位即100100,此时结果为101101,最后一位也是1则加上1001000,最终结果为1110101=117代码demo如下:public static long multiply(long x, long...
2019-09-18 13:56:13
999
原创 二进制数反转
问题将一个二进制数反转如:Input: 00000010100101000001111010011100Output: 00111001011110000010100101000000解决方案可以预设一些反转结果,如四位数的反转结果可以写作如下数组char nums[16] = {0,8,4,12,2,10,6,14,1,9,5,13,3,11,7,15};设L表示预设的反转结果的...
2019-09-17 16:07:48
2091
原创 bit swap
问题交换二进制中i和j两个位置解决方案首先检查i和j两位是否一致,若一致则无需进行修改。若不一致,创建一个i和j设为1的掩码,和原二进制进行异或即可。public static long swapBits(long x, int i, int j) { if(CCx»> i)&1)!=((x»> j)&1)){ long bitMask = (IL « ...
2019-09-17 15:44:03
502
原创 二进制中1的个数
elements of programming interviews in java第25页举了一个关于计算int类型在二进制下1的个数的问题,这里根据书上的方法写了代码,没有做过多少测试用例,只能说理论上应该是对的问题描述给定一个int类型数字x,计算其在二进制下1的个数方案1使用1作为掩码进行 and 运算,每次运算后将x进行右移操作public int mehtod_1(int x...
2019-09-12 13:33:36
161
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人