zoukankan      html  css  js  c++  java
  • 003运算符

    内容:自增运算符、右移运算符、逻辑运算符、与或运算符、异或运算符、连接符、练习(奇淫方法解决)

    供有点基础的人查阅

    ####################################

    自增运算符

    x++:表示  x 自增 1

    以下是经常碰到的易混点:

    int a = 6,b;
    b = a++;             //得到的结果是 b=6,a=7

    以上代码相当于

    temp = a; //先将a进行临时存储
    a = a + 1; //然后a自增
    b = temp; //将临时的值赋值给b

    重点在b = a++,这一句,要记住 b 赋的值是 a 未自增之前的值。

    #####################################

    右移运算符:>>   , 无符号右移:>>>

    整型字符存储是有8位,比如 9 ,二进制存储为 0000 1001,通过右移运算符 1 也就是 9 >> 1 后,变成 1000 0100,就是后面的 1 移到了前面

    无符号右移 1 位—9>>>1 :0000 0100

    ########################################

    逻辑运算符: &   &&    |      ||             <   >    ==

    & 和 &&的区别:& 两边都运算是否为真,&& 左边为假,则右边不运算;| 和 || 一样:左边为真,右边则不进行运算,如果左边为假,右边继续运算

    #####################################################

    与或非运算符:  &  |     与上面的逻辑运算符区分一下

    二进制运算

      0010 1011                                                                   0010 1011  

    &0000 0111                                                                 | 0000 0111

    =0000 0011     与运算,两个为1才为1                          0010 1111     或运算,一个为1结果就是1

    ######################################################

    异或运算符:  ^   

    6^3 =  0110 ^ 0011  = 0101 为了减少一点缩写,前面的 4 个 0 我就没有写了。是二进制运算

    值得注意的是:6^3^3 = 6          6^3^6 = 3      练习中会用到这种特性

    #########################################################

    连接符:在输出的时候注意一下

    int a = 3,b = 4;
    System.out.println("5+5="+5+5);  // 5+5=55
    System.out.println("5+5="+(5+5));   // 5+5=10
    System.out.println("a="+a+",b="+b);   // a=3,b=4
    //字符串连接使用简单,就不做讲解

    ####

    赋值运算符,一般不用考虑
    +=;可能发生自动类型转换
    Short s=4;
    s=s+5;   //编译不通过,因为右边是 int型和short型相加,类型不同不可以相加
    s+=5;   //编译通过,这个发生了类型转换,short型自动转成了int型,所以可以相加,如果理解不了,那就记住吧 /滑稽

    ####################################################################################################

    练习

    1、最有效率的方式计算2×8

    2、把两个整数变量的值进行互换(不通过第三个变量)

    System.out.println((2<<3))
    答案 1
    int a = 5,b = 6;
    a = a + b;    //a = 5+6 = 11
    b = a - b;    // b = 11-6 = 5
    a = a - b;    // a = 11-5 = 6
    答案 2.1
    int a = 5,b = 6;
    a = a ^ b;   // a = 5 ^ 6(a^b)
    b = a ^ b;   // b = 5 ^ 6 ^ 6(a^b^b)
    a = a ^ b;   // a = 5 ^ 6 ^ 5     此时的 b 已经经过上一个运算变成了 5 
    答案 2.2

    第二题两个方法使用时注意,不要超出整数范围

    如果有疑问,欢迎在下方评论,我会回复。

  • 相关阅读:
    sklearn linear_model,svm,tree,naive bayes,ensemble
    便利过滤
    js下载
    小程序修改radio的大小
    el-tree 问题与需求
    jsp页面用html引入vue.js注意问题
    WebPack
    yarn
    vue-cli 4以上 vue.config.js
    Cannot find module 'core-js/modules/es6.regexp.constructor'
  • 原文地址:https://www.cnblogs.com/-nbloser/p/8548300.html
Copyright © 2011-2022 走看看