
位运算
井底的笨鸟
Stay hungry,stay foolish.
展开
-
牛顿迭代法
牛顿法的作用是使用迭代的方法来求解函数方程的根。简单地说,牛顿法就是不断求取切线的过程。对于形如f(x)=0的方程,首先任意估算一个解x0,再把该估计值代入原方程中。由于一般不会正好选择到正确的解,所以有f(x)=a。这时计算函数在x0处的斜率,和这条斜率与x轴的交点x1。f(x)=0中精确解的意义是,当取得解的时候,函数值为零(即f(x)的精确解是函数的零点)。因此,x1比x0更转载 2016-08-05 17:41:31 · 809 阅读 · 0 评论 -
位运算实现整数的加减乘除
题目:给定两个32位int型整数,可正可负可0,实现四则运算。注:位运算考虑溢出问题。add加法实现: public int Add(int num1,int num2) { int sum=num1; int carry=0; while(num2!=0) { sum=原创 2016-07-19 15:00:25 · 385 阅读 · 0 评论 -
fast power关于取模运算
运算规则模运算与基本四则运算有些相似,但是除法例外。其规则如下:(a + b) % p = (a % p + b % p) % p (1)(a - b) % p = (a % p - b % p) % p (2)(a * b) % p = (a % p * b % p) % p (3)题目:Calculate the an %原创 2016-07-19 12:02:12 · 463 阅读 · 0 评论 -
不要被阶乘吓倒
题目一求N!的末尾有多少个0?N!=1*2*3*...*(N-1)*N; 10的质数分解只有2和5,那么假设N!中通过质数分解,所能得到的2的个数为X,所能得到的5的个数为Y,则X和Y中较小的一个极为连乘中10的个数,也就得到了N!结果中末尾的0的个数。不难看出,X > Y在N!中是一定成立的,则问题转化为求Y。最简单的解法:int count=0;for(原创 2016-07-19 11:42:29 · 318 阅读 · 0 评论 -
位运算基础知识
位操作有按位与(&)、或(|)、非(~)、异或(^)、左移n位(> n)等操作。java中的“>>>”运算符将用“0”填充高位,“>>”用符号位填充高位,没有“左移操作“java中对移位运算右侧的参数要做相应的取模处理,比如int类型的数1有32位,那么"1 在移位运算时,byte、short和char类型移位后的结果会变成int类型,进行位操作时,不用再考虑原有类型的原创 2016-07-19 09:56:02 · 427 阅读 · 0 评论 -
Java中BitSet的实现
编程珠玑中第一篇讲的就是使用bitmap来排序大文件里面的数据。下面给出一个简单的BitMap实现。主要使用Byte数组。主要就是使用位运算来设置为某位的bit为1; Java代码 public class BitMap { private byte[] bitMap = null;转载 2016-07-19 09:03:59 · 1578 阅读 · 0 评论 -
位运算——二进制中1的个数相关题目
题目描述输入一个整数,输出该数二进制表示中1的个数。其中负数用补码表示。如果一个整数不为0,那么这个整数至少有一位是1。如果我们把这个整数减1,那么原来处在整数最右边的1就会变为0,原来在1后面的所有的0都会变成1(如果最右边的1后面还有0的话)。其余所有位将不会受到影响。举个例子:一个二进制数1100,从右边数起第三位是处于最右边的一个1。减去1后,第三位变成0,原创 2016-06-12 20:47:16 · 399 阅读 · 0 评论 -
位运算——原码反码补码
http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html一. 机器数和真值在学习原码, 反码和补码之前, 需要先了解机器数和真值的概念.1、机器数一个数在计算机中的二进制表示形式, 叫做这个数的机器数。机器数是带符号的,在计算机用一个数的最高位存放符号, 正数为0, 负数为转载 2016-06-12 20:38:35 · 520 阅读 · 0 评论 -
single-number、single-number2,数组中只出现一次的数字
题目描述:single-number1一个数组中除了一个数字外,其余数字均出现两次,找出只出现一次的数字。要求线性复杂度方法:两个相同的数字异或得0,一个数字和0异或结果是它本身。public class Solution { public int singleNumber(int[] nums) { int num=0; fo...原创 2016-05-27 20:17:00 · 1800 阅读 · 0 评论