杂
算数右移位>>
例如:n>>x就可以理解成n/(2^x)
int a1 = 12 >> 1; //变量a1的取值为6 int a2 = -12 >> 2; //变量a2的取值为-3 int a3 = 128 >> 2; //变量a3的取值为32 int a4 = 129 >> 2; //变量a4的取值为32
算数左移位<<
例如:n<<x就可以理解成n*(2^x)
int a1 = 12 << 1; //变量a1的取值为24 int a2 = -12 << 2; //变量a2的取值为-48 int a3 = 128 << 2; //变量a3的取值为512 int a4 = 129 << 2; //变量a4的取值为516
求一个很大数的因子的方法
long n=2021041820210418l; long []a=new long[10000]; //不知道因子有多少个,所以定义一个不知长度的数组 long nn=1; int k=0; for(long i=1;i<Math.sqrt(n);i++){ if(n%i==0) { a[k++] = i; a[k++]=n/i; } }
long n=2021041820210418l; ArrayList<Long>a=new ArrayList<Long>(); //不知道因子有多少个,所以定义一个不知长度的数组 long nn=1; int k=0; for(long i=1;i<Math.sqrt(n);i++){ if(n%i==0) { a.add(i); a.add(n/i); } }

浙公网安备 33010602011771号