• Java运算符


    Java之运算符

    java运算符分为算数运算符、位运算符、逻辑运算符、其他运算符(三元运算符),具体如下:

    &(按位与)

    &按位与的运算规则是将两边的数转换成二进制位, 最后运算最终值,其运算法则为:两个数都为真,最终值才为真,一个假既值为假。(1&1=1、1&0=0、0&1=0、0&0=0)

    3的二进制位是0000 0011,5的二进制位是0000 0101,那么就是011 & 101,由按位与运算的规则可求得,最终值为001,既值为1。

    7的二进制位是0000 0111,那就是101 & 111等于101,也就是0000 0101,估值为5

    &&(逻辑与)

     

    &&逻辑与也称为短路逻辑与。先运算&&左边的表达式,一旦为假,后续不管多少的表达式,均不再计算,一个为真,在计算后边的表达式,两个为真才为真。

    |(按位或)

    |按位或和&按位与计算方式都是转换二进制再计算,不同的是计算规则(一个为真即为真)1|0 = 1、0|1 = 1、1|1 = 1、0|0 = 0

    8的二进制位0000 1000,2的二进制位是0000 0010,1000 | 0010,最终值为1010,故8|2=10

     ||(逻辑或)

    逻辑或||的运算规则是一个为真即为真,后续不再计算,一个为假再计算后边的表达式。

    ^(异或运算符)

    ^异或运算符就是字面意思,异就是不同,其运算规则为1^0 = 1、1^1 = 0、0^1 = 1、0^0 = 0

    5的二进制位是0000 0101,9的二进制位是0000 1001,也就是0101^1001,结果为1100,00001100的是十进制为是12

    <<(左移运算符)

    5<<2的意思为5的二进制位往左挪两位,右边补0,5的二进制位是0000 0101,就是把有效值101往左挪两位就是0001 0100,正数右边第一位补0,负数补1,等于乘于2的n次方,十进制位是20

    >>(右移运算符)

    凡是运算符都要先把值转换成二进制再进行后续的运算,5的二进制位是0000 0101,向右移两位就是把101右移后两位,正数左边第一位补0负数补1,等于乘于2的n次方,结果为1

     ~(取反运算符)

    取反就是把要处理的数先转换为二进制,1为0,0为1,10 的二进制位是0000 1010,取反之后就是1111 0101,值为-11

    >>>(无符号右移运算符)

    正数无符号右移

    无符号右移运算符和右移运算符的主要区别在于负数的计算,因为右移运算符是高位补0,移多少位补多少个0

    15的二进制是0000 1111,右移两位就是0000 0011,最终值为3

  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/wudidamowang666/p/11415904.html
Copyright © 2020-2023  润新知