zoukankan      html  css  js  c++  java
  • 大数据学习--day03(运算符、流程控制语句)

    运算符、流程控制语句

    自增自减容易出错的地方:

    扩展的赋值运算符
     a+=b 等同于 a = a+b;
     扩展的赋值运算符 隐含了一个类型的强制转换

     & && 有何区别

      & : 当左边的表达式结果为false时 , 仍旧判断执行右边的表达式
      && :当左边的表达式结果为false时 , 不去判断执行右边的表达式

     | || 有何不同之处

      | : 当 左边的表达式结果为 true 时 , 仍然会对右边的表达式进行 执行判断
      ||: 当 左边的表达式结果为 true 时 , 不会会对右边的表达式进行 执行判断

    三目运算符:

    位运算符

     只能操作整型
     使用位运算符时 会把 byte char short 先自动提升到 int

     << 左移

      x << y 等价于 x * 2^y

     >> 右移

       x >> y 等价于 x / 2^y
     
     例如 
        5 >> 1 == 5 / 2^1
        0 0000101 5
        0 0000010 右移一位 前面补的是符号位 -> 2
        0 0000001 右移二位 前面补的是符号位 -> 1
     
    负数右移
        1 0000101 -5 补码
        1 0000100 反码
        1 1111011 原码 
        
        1 1111101 原码右移一位 补符号位
       反码1 0000010
       补码1 0000011 == -3
        1 1111110 原码右移二位 补符号位
       反码1 0000001
       补码1 0000010 == -2
     

     >>> 无符号右移

      之前的 >> , 正数负数补的是符号位 , 无符号右移补 0
      >>> >> 如果操作的正数 , 那么完全一样 , 操作的负数 差距很大
     
      -5 >>> 1 == 2147483645 
      
      1 24个0 0000101 -5补码
      1 24个0 0000100 -5反码
      1 24个1 1111011 -5原码
      0 24个1 1111101 右移一位 补0
       得出结果 2147483645
     
    if语句同c#不讲了
  • 相关阅读:
    解析CIDR表示的IP段表示的范围
    [Python] 使用乘号复制变量引起的问题
    [Python] 字典dict添加二级键值的问题
    [Java] [刷题] 连续自然数和
    [Java] [刷题] 多个整数连接为最大整数问题
    [CentOS] 编译安装Python3后pip3安装的库如何在命令行调用
    [CentOS] 宝塔面板与Python3的恩怨情仇
    [易语言] 两种字节序的直观比较
    [Java] [刷题] Excel地址转换
    [Java] 运算精度
  • 原文地址:https://www.cnblogs.com/symkmk123/p/9634384.html
Copyright © 2011-2022 走看看