03-java运算符-函数

1,比较运算符


运行的结果必须是true 或者false


2,逻辑运算符
 "&" 和"&&" 的区别;

   单个"&",左边无论真假,右边都进行计算。

   双个"&",左边为假,右边不进行计算。

  "|"和"||" 的区别;

   单个"|",左边无论真假,右边都进行计算。

   双个"|",左边为真,右边不进行计算。

   异或^

  true^true =false

  两边一样是false 不一样true

  其他 和   |  或一样


 "|"和"&" 做位运算

    二进制进行|位运算,只有0|0时候为0 ,其他为1,比如6|5 先把6和5换成二进制。6的二进制为110,5的二进制为101 那么用位运算0|0得0 只要有1得1,算出为111,111换成十进制为7,所有6|5等于7

    二进制进行&位运算,只有1&1得1,其他得0,同理可得6&5算出二进制得100,100换成十进制为4

"^"异或运算和"~"反码

   任何相同二进制异或运算都得0,1^1=0,0^0=0,不相同的异或运算都得1,1^0=1,0^1=1。同理6^5的011

那么011的十进制是3。、

提示一个数异或两次变回本身。比如6^5^5的 110,101,101。先得011,再得110所有又变回原来的数值,此技巧可以用来转换数值,不需要第3个变量即可两个变量值互转。


3,位运算符


计算

&

6&3为2

    110

& 011

    010=2

|

6|3为7

        110

    & 011

        111=7

^

6^3为5

    110

  ^011

    101=5

 ^ 011

     110


6^3^3为6


一个数异或同房一个数两次 结果不变(实际引用加密)


~

反码


~6为-7



 "<<"左移"     >>"右移"      >>>"无符号右移

原理

    左移:空缺补0,被移除的高位丢弃,空缺位补0,比如32位二进制 0000....00011左移3位变成了0...00011xxx,则xxx补足000即可。规律左移是基数乘以2的移位幂次方,比如3<<2则是3*2*2也就是3乘以2的2次幂。

    右移:最高位是什么就补什么。高位是1补1,是0就补0.,规律左移是基数除以2的移位幂次方,比如3>>1则是3/2也就是3除以2的1次幂。

    无符号右移:无论高位是0还是1都补0

巧记

<<

3<<2  3*2的2次方=12

>>

8>>2为=2



2*8乘法原理

                0010

              *1000

                    0000

               0000   

             0000

          0010

               10000=16



面试题:

要求ab的值交换

(不用第三变量int c;c=a;a=b;b=c;)


1,整数过大时,容易强制转换,数据变化

a=a+b;

b=a-b;

a=a-b;

2,

a=a^b;

b=a^b;

a=a^b;

一个数异或同房一个数两次 结果不变(实际引用加密)


4,三元运算符

格式:

条件表达式)?表达式1表达式2

条件成立就是表达式1

条件不成立就是表达式2

c=(1>0)?66:77;

结果c=66;



5,程序流程结构


判断结构

循环结构

顺序结构


条件语句:

 

格式1

if(条件关系式)

{

       语句块1

}

 

 

 

 

格式2

if(条件关系式)

{

       语句块1

}

else

{

       语句块2

}

 

关系运算符:

 

等于              ==

不等于           !=

大于              >

大于等于       >=

小于              <

小于等于       <=

 

 

逻辑运算符:

 

           

           &&

           ||

 

 

 

for循环语句:

for(循环变量=初始值;循环变量<=终止值;循环变量=循环变量+步长值)

{

       循环体语句;

}

 

for(循环变量=初始值;循环变量>=终止值;循环变量=循环变量-步长值)

{

       循环体语句;

}

 

for(循环变量=初始值;循环变量<=终止值;循环变量=循环变量*步长值)

{

       循环体语句;

}

 

 

while循环语句:

当关系表达式成立时,执行循环体中的语句,然后返回重新检验关系表达式是否成立,若不成立则不执行循环体中语句,结束循环。

while(关系表达式)

{

       循环体语句块;

}

 

 

 

do...while循环语句:

首先执行循环体中语句块,然后检验关系表达式是否成立,若成立,则继续执行循环体中语句,否则,结束循环。

do

{

       循环体语句块;

}while(关系表达式)

 

数组的声明方法:

数据类型  数组名称[ ]=new 数据类型[元素个数];

数据类型  数组名称[ ]={数据集合};

例如:

double  s[]=new double[20];

double  t[]={12,34,56,78,98};

 

数组的输入模块:

int i;

for(i=0;i<20;i=i+1)

{

       a[i]=Math.floor(Math.random()*(N-M+1))+M;

}

for(i=0;i<5;i=i+1)

{

       s1=input1.readLine();

       a[i]=Double.parseDouble(s1);

}

数组的输出模块:

for(i=0;i<20;i=i+1)

{

       System.out.println(a[i]);

}

 

随机函数的使用:

随机函数:Math.random()

         返回[0,1.0) 之间的随机数。0<=Math.random()<1

 

生面某范围内随机整数:

1  产生0~1这间的随机小数x

 x=Math.random( );

 

2  产生[0n]这间的随机整数x

 x=(int)Math.floor(n+1)*Math.random( ));

 

3  产生[mn]范围内的随机整数x

 x=(int)Math.floor((n-m+1)*Math.random( )+m);



(注:部分资料引用于http://my.oschina.net/bozhi/blog/179585)




  















全部评论

相关推荐

06-28 22:48
已编辑
广东金融学院 Java
小浪_Coding:学院本+这俩项目不是buff叠满了嘛
点赞 评论 收藏
分享
06-27 12:54
已编辑
门头沟学院 Java
累了,讲讲我的大学经历吧,目前在家待业。我是一个二本院校软件工程专业。最开始选专业是觉得计算机感兴趣,所以选择了他。本人学习计算机是从大二暑假结束开始的,也就是大三开始。当时每天学习,我个人认为Java以及是我生活的一部分了,就这样持续学习了一年半,来到了大四上学期末,大概是在12月中旬,我终于找的到了一家上海中厂的实习,但我发现实习生的工作很枯燥,公司分配的活也不多,大多时间也是自己在自学。就这样我秋招末才找到实习。时间来到了3月中旬,公司说我可以转正,但是转正工资只有7000,不过很稳定,不加班,双休,因为要回学校参加答辩了,同时当时也是心高气傲,认为可以找到更好的,所以放弃了转正机会,回学校准备论文。准备论文期间就也没有投递简历。然后时间来到了5月中旬,这时春招基本也结束了,然后我开始投递简历,期间只是约到了几家下场面试。工资也只有6-7k,到现在我不知道该怎么办了。已经没有当初学习的心劲了,好累呀,但是又不知道该干什么去。在家就是打游戏,boss简历投一投。每天日重一次。26秋招都说是针对26届的人,25怎么办。我好绝望。要不要参加考公、考研、央国企这些的。有没有大佬可以帮帮我。为什么感觉别人找工作都是顺其自然的事情,我感觉自己每一步都在艰难追赶。八股文背了又忘背了又忘,我每次都花很长时间去理解他,可是现在感觉八股、项目都忘完了。真的已经没有力气再去学习了。图片是我的简历,有没有大哥可以指正一下,或者说我应该走哪条路,有点不想在找工作了。
码客明:太累了就休息一下兄弟,人生不会完蛋的
如果实习可以转正,你会不...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务