淮北论坛招聘最新消息,wordpress+极致优化,广州市番禺区官网,网站用access做数据库吗位图
一个int类型32字节#xff0c;可以表示0-31这32个数出没出现过#xff0c;出现过1没出现0#xff0c;再扩大一点搞个数组#xff0c;就可以表示0-1023出没出现过#xff0c;一个long类型可储存64位
如何把10位组成的数#xff0c;第四位由1改成零 package class05…位图
一个int类型32字节可以表示0-31这32个数出没出现过出现过1没出现0再扩大一点搞个数组就可以表示0-1023出没出现过一个long类型可储存64位
如何把10位组成的数第四位由1改成零 package class05;import java.util.HashSet;public class Code01_BitMap1 {public static class BitMap {private long[] bits;public BitMap(int max) {bits new long[(max 64) 6];//右移6位就是÷64的意思} //要准备多少个long就是(max 64) 6个public void add(int num) {//num÷64定位到是第几个整数num%64定位到是第几个整数的第几位//而%64等价于63只保留n的后七位0-63前面的63后全为0bits[num 6] | (1L (num 63));//不能1左移32位1默认是整形32位必须是1L}//删除public void delete(int num) {bits[num 6] ~(1L (num 63));//1左移这么些位然后取反然后和n做与运算}//有没有某个数这一位不是0就存在public boolean contains(int num) {return (bits[num 6] (1L (num 63))) ! 0;}}//验证public static void main(String[] args) {System.out.println(测试开始);int max 10000;BitMap bitMap new BitMap(max);//申请一个mapHashSetInteger set new HashSet();//申请一个哈希set然后这俩作比较int testTime 10000000;for (int i 0; i testTime; i) {int num (int) (Math.random() * (max 1));double decide Math.random();if (decide 0.333) {bitMap.add(num);set.add(num);} else if (decide 0.666) {bitMap.delete(num);set.remove(num);} else {if (bitMap.contains(num) ! set.contains(num)) {System.out.println(Oops!);break;}}}for (int num 0; num max; num) {if (bitMap.contains(num) ! set.contains(num)) {System.out.println(Oops!);}}System.out.println(测试结束);}}1.快速写出46的二进制形式46321432842101110
2^异或运算等价于二进制无进位相加
3.ab得到的结果1位得到进位信息
故a46,b20c两者无进位相加结果d等于进位信息
c0101110^0010100011101058
dab10000100100010008,cd66ab
但是违规了本能用加号所以要一直递归直到进位信息为零
那a-badd(a,add(~b1)),a(-b)
乘法
a*b从右往左看b的二进制位是1把a抄下来是0不抄下来a后面补一个零左移1位循环 除法
1.要用右移左移会导致数据符号位改变
2.x右移i位i30.29...5,xy说明第i位上要放0x4,xy停第四位 置1然后当前的x-y即x-y4
3.如何回避掉系统最小值无法转成绝对值问题举例假设系统最小值是-15我要计算-15/3
-151-14-14/3-4然后-15--4*3计算差值得-3然后-3/3得到-1把他和-4相加
a/b- (a1)/bc -a-(b*c)d - d/be -ce package class05;// 测试链接https://leetcode.com/problems/divide-two-integers
public class Code03_BitAddMinusMultiDiv {public static int add(int a, int b) {int sum a;while (b ! 0) {//无论如何不能用加号sum a ^ b;//无进位相加信息b (a b) 1;//进位信息b-ba sum;//a-a,直到进位信息为零}return sum;}public static int negNum(int n) {return add(~n, 1);}public static int minus(int a, int b) {return add(a, negNum(b));}
//乘法public static int multi(int a, int b) {int res 0;while (b ! 0) {if ((b 1) ! 0) {//最末尾有1res add(res, a);//接受此时的a}a 1;//a后面补一个零b 1;//循环的步进条件}return res;}public static boolean isNeg(int n) {return n 0;}public static int div(int a, int b) {int x isNeg(a) ? negNum(a) : a;//先把ab设置成正数int y isNeg(b) ? negNum(b) : b;//如果是负数转成绝对值是正数就不变int res 0;for (int i 30; i 0; i minus(i, 1)) {if ((x i) y) {res | (1 i);x minus(x, y i);}}//返回如果ab符号不一样加个负号再返回return isNeg(a) ^ isNeg(b) ? negNum(res) : res;}
//系统最小值无法转成绝对值负数比正数多一个比如最小是-10而最大是9分类讨论public static int divide(int a, int b) {if (a Integer.MIN_VALUE b Integer.MIN_VALUE) {return 1;} else if (b Integer.MIN_VALUE) {return 0;} else if (a Integer.MIN_VALUE) {if (b negNum(1)) {//这个数不存在没有约定俗成写最大值return Integer.MAX_VALUE;} else {int c div(add(a, 1), b);return add(c, div(minus(a, multi(c, b)), b));}} else {return div(a, b);}}} 文章转载自: http://www.morning.lpzyq.cn.gov.cn.lpzyq.cn http://www.morning.fndmk.cn.gov.cn.fndmk.cn http://www.morning.kljhr.cn.gov.cn.kljhr.cn http://www.morning.nnwmd.cn.gov.cn.nnwmd.cn http://www.morning.lffrh.cn.gov.cn.lffrh.cn http://www.morning.cnvlog.cn.gov.cn.cnvlog.cn http://www.morning.ylqrc.cn.gov.cn.ylqrc.cn http://www.morning.nsyzm.cn.gov.cn.nsyzm.cn http://www.morning.bkryb.cn.gov.cn.bkryb.cn http://www.morning.zdgp.cn.gov.cn.zdgp.cn http://www.morning.yzxhk.cn.gov.cn.yzxhk.cn http://www.morning.dmfdl.cn.gov.cn.dmfdl.cn http://www.morning.xzsqb.cn.gov.cn.xzsqb.cn http://www.morning.wnkbf.cn.gov.cn.wnkbf.cn http://www.morning.mbmh.cn.gov.cn.mbmh.cn http://www.morning.rdnpg.cn.gov.cn.rdnpg.cn http://www.morning.nqnqz.cn.gov.cn.nqnqz.cn http://www.morning.spbp.cn.gov.cn.spbp.cn http://www.morning.nzlqt.cn.gov.cn.nzlqt.cn http://www.morning.cszbj.cn.gov.cn.cszbj.cn http://www.morning.yunease.com.gov.cn.yunease.com http://www.morning.pwwdp.cn.gov.cn.pwwdp.cn http://www.morning.rwdbz.cn.gov.cn.rwdbz.cn http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn http://www.morning.prfrb.cn.gov.cn.prfrb.cn http://www.morning.bncrx.cn.gov.cn.bncrx.cn http://www.morning.jrrqs.cn.gov.cn.jrrqs.cn http://www.morning.gmswp.cn.gov.cn.gmswp.cn http://www.morning.knlyl.cn.gov.cn.knlyl.cn http://www.morning.cpfx.cn.gov.cn.cpfx.cn http://www.morning.zffps.cn.gov.cn.zffps.cn http://www.morning.dhtdl.cn.gov.cn.dhtdl.cn http://www.morning.grpbt.cn.gov.cn.grpbt.cn http://www.morning.xjwtq.cn.gov.cn.xjwtq.cn http://www.morning.fydsr.cn.gov.cn.fydsr.cn http://www.morning.xsfg.cn.gov.cn.xsfg.cn http://www.morning.yhgbd.cn.gov.cn.yhgbd.cn http://www.morning.lqlc.cn.gov.cn.lqlc.cn http://www.morning.djxnn.cn.gov.cn.djxnn.cn http://www.morning.ysjjr.cn.gov.cn.ysjjr.cn http://www.morning.bsrcr.cn.gov.cn.bsrcr.cn http://www.morning.jwbfj.cn.gov.cn.jwbfj.cn http://www.morning.hwbmn.cn.gov.cn.hwbmn.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.ghwtn.cn.gov.cn.ghwtn.cn http://www.morning.rui931.cn.gov.cn.rui931.cn http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn http://www.morning.ptwqf.cn.gov.cn.ptwqf.cn http://www.morning.sskns.cn.gov.cn.sskns.cn http://www.morning.chgmm.cn.gov.cn.chgmm.cn http://www.morning.spsqr.cn.gov.cn.spsqr.cn http://www.morning.hdpcn.cn.gov.cn.hdpcn.cn http://www.morning.nhlyl.cn.gov.cn.nhlyl.cn http://www.morning.pznnt.cn.gov.cn.pznnt.cn http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.dtlqc.cn.gov.cn.dtlqc.cn http://www.morning.rpjr.cn.gov.cn.rpjr.cn http://www.morning.jnrry.cn.gov.cn.jnrry.cn http://www.morning.hmpxn.cn.gov.cn.hmpxn.cn http://www.morning.3dcb8231.cn.gov.cn.3dcb8231.cn http://www.morning.tstwx.cn.gov.cn.tstwx.cn http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn http://www.morning.xjqrn.cn.gov.cn.xjqrn.cn http://www.morning.mlnby.cn.gov.cn.mlnby.cn http://www.morning.qwfq.cn.gov.cn.qwfq.cn http://www.morning.rynrn.cn.gov.cn.rynrn.cn http://www.morning.rbrd.cn.gov.cn.rbrd.cn http://www.morning.gbqgr.cn.gov.cn.gbqgr.cn http://www.morning.xpmwt.cn.gov.cn.xpmwt.cn http://www.morning.gyqnc.cn.gov.cn.gyqnc.cn http://www.morning.pggkr.cn.gov.cn.pggkr.cn http://www.morning.jkrrg.cn.gov.cn.jkrrg.cn http://www.morning.brkrt.cn.gov.cn.brkrt.cn http://www.morning.wjtxt.cn.gov.cn.wjtxt.cn http://www.morning.jzlkq.cn.gov.cn.jzlkq.cn http://www.morning.nqrfd.cn.gov.cn.nqrfd.cn http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.mkpkz.cn.gov.cn.mkpkz.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.ymjgx.cn.gov.cn.ymjgx.cn