Java语言基础(八)
Java语言基础(八)
一.数学运算 + - * / %
(1)凡是byte short char类型都按int类型的计算
看看上面的代码,为什么出错!
我已经将100转成byte类型,(byte)100 是byte类型的,b也是byte类型的
那么赋给byte类型的b1 ,为什么还报错
原因是(1),byte类型的计算按int类型的计算
还有个问题,看下面这个
这段代码为什么不报错,按前面说,byte类型的计算按int类型的计算,那么这个呢
那因为,Java编译期间,将常量的运算优化为结果 在运行时,
c的结果已经是c=102 而不是c=100+2了
再看如下代码:
前面说,会自动将常量的计算优化为结果,那为什么这里还报错
实际上,这句(会自动将常量的计算优化为结果)是有限制的,那就不能超过
byte类型的最大值 即127
short类型的 最大值是32767
char类型的 最大值是65535
说明: 变量运算在运行期间执行,如下会报错 ,不会优化
(2).同种类型参与运算,返回同种类型 但可能发生自动类型转换
int a=2*3 2是整数,3是整数,那么a也是整数 上面那句就是这个意思
加减乘和日常生活说的一样,但计算的结果别越界
这里说说,除法,与取模;
二.取取运算
(1).负数的余数是(-(n-1),0]
(2).整数的余数是[0,n)
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步