zoukankan      html  css  js  c++  java
  • Java 基本语法----进制、运算符

    进 制

    对于整数,有四种表示方式:

    二进制:0,1 ,满 2 进 1.以 0b 或 0B 开头。
    十进制:0-9 ,满 10 进 1.
    八进制:0-7 ,满 8 进1. 以数字 0 开头表示。
    十六进制:0-9 及 A-F,满 16 进1. 以 0x 或 0X开头表示。此处的A-F不区分大小写。


    所有数字在计算机底层都以二进制形式存在
    计算机以补码的形式保存所有的整数
    正数的补码与其原码相同;负数的补码是在其反码的末位加1
    原码:直接将一个数值换成二进制数
    反码:是对原码按位取反,只是最高位(符号位)保持不变
    Java整数常量默认是int类型,当用二进制定义整数时,其第32位是符号位;当是long类型时,二进制默认占64位,第64位是符号位

    进制的基本转换

    十进制二进制互转
     十进制转成二进制 除以2取余数
     二进制转成十进制 乘以2的幂数
    二进制八进制互转
    二进制十六进制互转
    十进制八进制互转
    十进制十六进制互转

    运算符

    运算符分类

    算术运算符
    赋值运算符
    比较运算符(关系运算符)
    逻辑运算符
    位运算符
    三元运算符

    算数运算符

    //取模
    int r = 10 % 3;
    System.out.println(r);
            
    //自增
    int i = 10;
            
    //i++: 先取 i 值, 在运算(i = i + 1)
    int j = i++;
    System.out.println(j);
            
    j = i;
    System.out.println(j);
            
    int m = 100;
    //++m: 先运算(m = m + 1), 后取值
    int n = ++m;
    System.out.println(n);
            
    n = m;
    System.out.println(n);
            
    //+: 字符串相加
    String str = "abc";
    String str2 = "def";
            
    String str3 = str + str2; //abcdef
    System.out.println(str3);
            
    //如果对负数取模,可以把模数负号忽略不记
    System.out.println(10 % -3); //1 
    //如果被模的数是负数, 则先对其绝对值进行取模运算, 结果在加上一个负号
    System.out.println(-10 % 3); //-1
            
    System.out.println(-10 % -3); //-1
            
    //整数之间做除法时,只保留整数部分而舍弃小数部分
    int x=3510;
    x= x / 1000 * 1000;
    System.out.println(x); //3000 
            
    //+ 除字符串相加功能外,还能把非字符串转换成字符串
    String str4 = "1";
    System.out.println(str4 + 100); //1100

    如果对负数取模,可以把模数负号忽略不记,如:5%-2=1。 但被模数是负数就另当别论。
    对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只保留整数部分而舍弃小数部分。 例如:int x=3510;x=x/1000*1000; x的结果是3000
    “+”除字符串相加功能外,还能把非字符串转换成 字符串.例如:System.out.println("5+5="+5+5); //打印结果是5+5=55


    赋值运算符

    符号:=
    扩展赋值运算符: +=, -=, *=, /=, %=

    x += 1000; // x = x + 1000; 
    System.out.println(x); //4000


    比较运算符

    //比较运算符
    System.out.println(x >= 1000); //true

    注1:比较运算符的结果都是boolean型,也就是要么是true,要么是false。
    注2:比较运算符“==”不能误写成“=” 。


    逻辑运算符

    //逻辑运算符
    int a = 10;
    int b = 20;

    逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 && x<6 。


    “&”和“&&”的区别

    单&时,左边无论真假,右边都进行运算;
    双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
    和“||”的区别同理,双或时,左边为真,右边不参与运算。
    异或( ^ )与或( | )的不同之处是:对于 ^ 而言,当左右都为true时,结果为false。

    // &: 与 运算符, 当且仅当两边都为真时, 表达式的结果为 true
    System.out.println(a > 5 & b < 30); //true
    System.out.println(a > 15 & b < 30); //false
    System.out.println(a > 5 & b < 20); //false
            
    // |: 或 运算符, 当且仅当两边都为假时, 表达式结果为 false
    System.out.println(a > 5 | b < 30); //true
    System.out.println(a > 15 | b < 3); //false
    System.out.println(a > 5 | b < 20); //true
            
    // ^: 异或 运算符, 当且仅当两边的表达式的结果不同时为 true, 否则为 false
    System.out.println(a > 5 ^ b < 30); //false
    System.out.println(a > 15 ^ b < 3); //false
    System.out.println(a > 5 ^ b < 20); //true
            
    // !: 取反 运算符. 
    System.out.println(!(a > 5)); //false
            
    //短路逻辑运算符: &&, ||. 若 短路逻辑运算符前的表达式已经可以确定整个表达式的值, 
    //则不再判断 短路运算符后边的表达式的值
    System.out.println(a > 15 && (10 / 0 == 1)); //false


    位运算符

    位运算是直接对二进制进行运算

    //位运算符
    int c = 3; //0000 0011        
            
    //左移运算符
    System.out.println(c << 2); //0000 1100 -> 12  3 * (2*2) = 12
            
    //右移运算符
    System.out.println(c >> 2); //0000 0000 -> 0   3 / (2 * 2) = 0;
            
    //无符号右移运算符
    int d = -1; 
    System.out.println(d >> 1); //-1
    System.out.println(d >>> 1); //-1
            
    //& 位运算符
    /*
     *   0000 0010
     * & 0000 0011
     * ___________
     *   0000 0010   
     */
    System.out.println(2 & 3); //2

    三元运算符

    格式:
    (条件表达式)?表达式1:表达式2;
    如果条件为true,运算后的结果是表达式1;
    如果条件为false,运算后的结果是表达式2;

    //三元运算符
    String e = d > 3 ? "d > 3" : "d <= 3";
    System.out.println(e); // d <= 3
            
    //编译不能通过, 因为 : 的两边必须是表达式, 且必须是类型兼容的表达式
    //d > 3 ? System.out.println("a") : System.out.println("b");
            
    boolean res = d > 3 ? false : ">3";
  • 相关阅读:
    jQuery中的观察者模式(Observer Pattern)
    jQuery异步获取json数据的2种方式
    jQuery制作水平多级下拉菜单
    简单说明CGI和动态请求是什么
    五种IO模型透彻分析
    不可不知的socket和TCP连接过程
    零复制(zero copy)技术
    编译httpd细节
    ansible编译httpd playbook示例
    翻译:CREATE DATABASE语句
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7208080.html
Copyright © 2011-2022 走看看