java整数运算_Java整数运算

// 位运算

public class Main {

public static void main(String[] args) {

int i = 167776589; // 00001010 00000000 00010001 01001101

int n = 167776512; // 00001010 00000000 00010001 00000000

System.out.println(i & n); // 167776512

}

}

上述按位与运算实际上可以看作两个整数表示的IP地址10.0.17.77和10.0.17.0,通过与运算,可以快速判断一个IP是否在给定的网段内。

运算优先级

在Java的计算表达式中,运算优先级从高到低依次是:

()

! ~ ++ --

* / %

+ -

<> >>>

&

|

+= -= *= /=

记不住也没关系,只需要加括号就可以保证运算的优先级正确。

类型自动提升与强制转型

在运算过程中,如果参与运算的两个数类型不一致,那么计算结果为较大类型的整型。例如,short和int计算,结果总是int,原因是short首先自动被转型为int:

// 类型自动提升与强制转型

public class Main {

public static void main(String[] args) {

short s = 1234;

int i = 123456;

int x = s + i; // s自动转型为int

short y = s + i; // 编译错误!

}

}

也可以将结果强制转型,即将大范围的整数转型为小范围的整数。强制转型使用(类型),例如,将int强制转型为short:

int i = 12345;

short s = (short) i; // 12345

要注意,超出范围的强制转型会得到错误的结果,原因是转型时,int的两个高位字节直接被扔掉,仅保留了低位的两个字节:

// 强制转型

public class Main {

public static void main(String[] args) {

int i1 = 1234567;

short s1 = (short) i1; // -10617

System.out.println(s1);

int i2 = 12345678;

short s2 = (short) i2; // 24910

System.out.println(s2);

}

}

强制转型的结果很可能是错的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值