java语言数学_Java语言基础(八)

Java语言基础(八)

一.数学运算  + - * /  %

(1)凡是byte  short  char类型都按int类型的计算

8f78559471ea7dac891259b9d954e953.png

看看上面的代码,为什么出错!

我已经将100转成byte类型,(byte)100  是byte类型的,b也是byte类型的

那么赋给byte类型的b1 ,为什么还报错

原因是(1),byte类型的计算按int类型的计算

还有个问题,看下面这个

56fba39f34f50bf2dbf97e0e854b7a52.png

这段代码为什么不报错,按前面说,byte类型的计算按int类型的计算,那么这个呢

那因为,Java编译期间,将常量的运算优化为结果 在运行时,

c的结果已经是c=102  而不是c=100+2了

再看如下代码:

a6e83c18641c6dcdce69a9caf9f1e5b0.png

前面说,会自动将常量的计算优化为结果,那为什么这里还报错

8580b29a5c1c8d32ea3c17b01d29496d.png

实际上,这句(会自动将常量的计算优化为结果)是有限制的,那就不能超过

byte类型的最大值 即127

short类型的  最大值是32767

0e72a768735f06efe00379f724a47cd5.png

char类型的  最大值是65535

说明:  变量运算在运行期间执行,如下会报错 ,不会优化

d6e941aa2b9c8abada9e6e59c5acee77.png

(2).同种类型参与运算,返回同种类型 但可能发生自动类型转换

int a=2*3  2是整数,3是整数,那么a也是整数  上面那句就是这个意思

加减乘和日常生活说的一样,但计算的结果别越界

这里说说,除法,与取模;

二.取取运算

(1).负数的余数是(-(n-1),0]

(2).整数的余数是[0,n)

088905b3e4423135488996e9badcde53.png

44491fc597374eea5f330101d62a7182.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值