zoukankan      html  css  js  c++  java
  • 03java运算符函数

    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)




      















    作者:hiszm
    版权:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,万分感谢。
    留言:同时 , 如果文中有什么错误,欢迎指出。以免更多的人被误导。
  • 相关阅读:
    07.15 first与first-child的区别
    7.15 css与js 选择奇偶子元素的区别
    7.15过有意思的生活
    7.14养成健身习惯
    8080端口被占用
    Vue自定义指令和认识钩子函数
    按键修饰符
    Vue 的过滤器
    列表渲染
    在Vue中使用.class样式
  • 原文地址:https://www.cnblogs.com/hiszm/p/12385314.html
Copyright © 2011-2022 走看看