位操作符判断奇偶性的原理:
1、“与”、“位与”(&)
按位“与”操作符,如果两个数的二进制,相同位数都是1,则该位结果是1,否则是0.
2、“或”、“位或”(|)
按位“或”操作符,如果两个数的二进制,相同位数有一个是1,则该位结果是1,否则是0
3、“异或、“位异或”(^)
按位“异或”操作符,如果两个数的二进制,相同位数只有一个是1,则该位结果是1,否则是0
4、“非”、“位非”(~)也称为取反操作符
按位“非”操作符,属于一元操作符,只对一个操作数进行操作,(其他按位操作符是二元操作符)。按位“非”生成与输入位相反的值,——若输入0,则输出1,若输入1,则输出0。
其他细节:
一定要写主函数= =
switch后面的表达一定要用括号括起来
判断素数:
链接:https://www.zhihu.com/question/308322307/answer/574767625
证明:令x≥1,将大于等于5的自然数表示如下:
······ 6x-1,6x,6x+1,6x+2,6x+3,6x+4,6x+5,6(x+1),6(x+1)+1 ······
可以看到,不在6的倍数两侧,即6x两侧的数为6x+2,6x+3,6x+4,由于2(3x+1),3(2x+1),2(3x+2),所以它们一定不是素数,再除去6x本身,显然,素数要出现只可能出现在6x的相邻两侧。这里有个题外话,关于孪生素数,有兴趣的道友可以再另行了解一下,由于与我们主题无关,暂且跳过。这里要注意的一点是,在6的倍数相邻两侧并不是一定就是质数。
此时判断质数可以6个为单元快进,即将方法(2)循环中i++步长加大为6,加快判断速度,原因是,假如要判定的数为n,则n必定是6x-1或6x+1的形式,对于循环中6i-1,6i,6i+1,6i+2,6i+3,6i+4,其中如果n能被6i,6i+2,6i+4整除,则n至少得是一个偶数,但是6x-1或6x+1的形式明显是一个奇数,故不成立;另外,如果n能被6i+3整除,则n至少能被3整除,但是6x能被3整除,故6x-1或6x+1(即n)不可能被3整除,故不成立。综上,循环中只需要考虑6i-1和6i+1的情况,即循环的步长可以定为6,每次判断循环变量k和k+2的情况即可,理论上讲整体速度应该会是方法(2)的3倍。
————————————————
版权声明:本文为CSDN博主「huang_miao_xin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/huang_miao_xin/java/article/details/51331710
数组打印
Arrays.toString(arr_name)
直接写arr_name会打印首地址
赋值运算符
基本的赋值运算符是“=”。他的优先级别低于其他的运算符,所以对该运算符往往最后读取。
运算符实例等价于
=n=25
1.= 赋值运算符
变量=表达式如:a=3;将a的值赋为3
2./= 除后赋值
变量/=表达式 如:a/=3;即a=a/3
3.*= 乘后赋值
变量*=表达式 如:a*=3;即a=a*3
4.%= 取余后赋值
变量%=表达式 如:a%=3;即a=a%3
5.+= 加后赋值
变量+=表达式 如:a+=3;即a=a+3
6.-= 减后赋值
变量-=表达式如:a-=3;即a=a-3
7.<<= 左移后赋值
变量<<=表达式 左移就是将<<左边的数的二进制各位全部左移若干位,<<右边的数指定移动位数,高位丢弃,低位补0, 移几位就相当于乘以2的几次方
8.>>= 右移后赋值
变量>>=表达式右移运算符是用来将一个数的各二进制位右移若干位,移动的位数由右操作数指定(右操作数必须是非负值),移到右端的低位被舍弃,对于无符号数,高位补0。对于有符号数,某些机器将对左边空出的部分用符号位填补(即“算术移位”),而另一些机器则对左边空出的部分用0填补(即“逻辑移位”)。注意:对无符号数,右移时左边高位移入0;对于有符号的值,如果原来符号位为0(该数为正),则左边也是移入0。如果符号位原来为1(即负数),则左边移入0还是1,要取决于所用的计算机系统。有的系统移入0,有的系统移入1。移入0的称为“逻辑移位”,即简单移位;移入1的称为“算术移位”。
9.&= 按位与后赋值
变量&=表达式
按位与是指:参加运算的两个数据,按二进制位进行“与”运算。如果两个相应的二进制位都为1,则该位的结果值为1;否则为0。这里的1可以理解为逻辑中的true,0可以理解为逻辑中的false。按位与其实与逻辑上“与”的运算规则一致。逻辑上的“与”,要求运算数全真,结果才为真。若,A=true,B=true,则A∩B=true
10. ^= 按位异或后赋值
变量^=表达式参与运算的两个量按照对应的位进行异或运算,且
0^0→0, 0^1→1, 1^0→1, 1^1→0
此外,一个数与0异或仍保持不变,即a^0=a
一个数与自己异或结果为0,即a^a=0
11.|= 按位或后赋值
变量|=表达式 参与运算的两个量按照对应位进行或运算,且0|0→0, 0|1→1, 1|0→1, 1|1→1
EQ 就是 EQUAL等于
NE 就是 NOT EQUAL不等于
GT 就是 GREATER THAN大于
LT 就是 LESS THAN小于
GE 就是 GREATER THAN OR EQUAL 大于等于
LE 就是 LESS THAN OR EQUAL 小于等于