java学习笔记:整数运算

一、整数运算

1. 整数运算永远得到整数(包括除法)。

     举例:

public class TestIntCal {
    public static void main(String[] args){
        int x = 12345/67;   //除法:获得结果的整数部分
        int y = 12345%67;   //余数:获得除法的余数
        //int z = 12345/0;    //编译不出错,但运行时报错
        System.out.print("x=");
        System.out.println(x);
        System.out.print("y=");
        System.out.println(y);
       // System.out.print("z=");
       // System.out.println(z);
    }
}

      >> 正常输出: 

     >> 如执行int z = 12345/0,输出如下(无其他输出):

  • 整数/0:编译不会报错,运行时报错。 
  • 溢出:超出int/long长度则溢出,int溢出可改为long类型。

 2、自加/自减

        Java提供“++”“--”自身+1和自身-1操作,举例:

public class TestIntCal2 {
    public static void main(String[] args){
        int n = 200;
        n++;
        n--;
        int y1 = 100 + (n++);      //y=100+n
        int y2 = 100 + (++n);      //y=100+(n+1)
        System.out.print("n=");
        System.out.println(n);
        System.out.print("y1=");
        System.out.println(y1);
        System.out.print("y2=");
        System.out.println(y2);        
    }   
}

        输出:

 ★注意:n++和++n的区别:

  • n++:在当前语句执行后+1;
  • ++n:在当前语句执行前+1。

3. 移位运算

Java提供整数的移位运算。

  • (有符号)左移:<<,右移:>>;(不循环,补0,负数最高位不变,正数最高位变1后不变)
  • (无符号)右移:>>>。(最高位置0后,其他位移动,补0)

  举例:

    整数7的二进制表示为:00000000 00000000 00000000 00000111;

    整数-7的二进制表示为:11111111 11111111 11111111 11111001。(7的二进制、取反、+1)

  1. 左移1位:7<<1:7*2=14 (00000000 00000000 00000000 00001110)
  2. 右移1位:7>>1:7/2=3    (00000000 00000000 00000000 00000011)
  3.  左移29位:7<<29: -7^29 = - 536870912 (11000000 00000000 00000000 00000000)
  4. 无符号右移1位:+7>>>1:7/2 = 3(00000000 00000000 00000000 00000011)
  5. 无符号右移1位: -7>>>1:2147483644(01111111 11111111 11111111 1111 1100)
  • 对byte和short类型进行位移时,会转换为int再进行位移。

  • 左移=*2,右移+2

4. 位运算

        按位进行“与”“或”“非”“异或”的运算。

位运算规则
与(&)a=1, b=1 >> 1;
其他为0
或(|)

a=1 或 b=1  >> 1;

其他为0

非(~)

a = 1  >> -2

因为是按位操作!!(1: 00000000 00000000 00000001)-->(-2: 11111111 11111111 11111111 11111110);

a = 0 >> -1(11111111 11111111 11111111 11111111)

异或(^)

a=0, b=0 >> 0
a=0, b=1 >> 1

a=1, b=0 >> 1

a=1, b=1 >> 0

 5. 运算优先级

  • ()
  • ! ~ ++ --
  • * / %
  • + -
  • << >> >>>
  • &
  • |
  • += -= *= /=

6. 不同类型的运算

  • 在运算过程中,若参与运算的两个数类型不一致,则计算结果为较大类型的整型。
  • 也可以用"(类型)"强制转换。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值