Java 基础语法 Part4
在有关我笔记分享的博客中,我都会将MD笔记文件另外发布,方便朋友们下载学习。
本期笔记文件下载地址:https://download.csdn.net/download/lbwnbnbnbn/15225075
Ayo大家好我是Tomatooo,这是我的Java学习笔记第4期,话不多说直插主题——
运算
整数运算
Java整数运算遵循四则运算原则,可以使用括号等
整数在运算时只会保留整数部分,并不像设想的那样会四舍五入
求余运算使用%
示例:
int a = 66666%123 //这里是求66666/123的余数
特别注意:整数的除法对于除数为0时运行时将报错,但编译不会报错。
溢出
之前笔记提到过,整数存在范围限制,如果计算结果超出了范围,就会造成溢出,而溢出不会出错,只会得到一个意料之外的结果
自增/自减
Java提供了++
运算和--
运算,它们可以对一个整数进行加1和减1的操作
注意:++
写在前面和后面计算结果是不同的,++n
表示先加1再引用n,n++
表示先引用n再加1。
移位运算
在计算机中,整数总是以二进制的形式表示。
例如,
int
类型的整数7
使用4字节表示的二进制如下:
00000000 00000000 00000000 00000111
可以对整数进行移位运算。对整数
7
左移1位将得到整数14
,左移两位将得到整数28
示例:
int n = 7; // 00000000 00000000 00000000 00000111 = 7
int a = n << 1; // 00000000 00000000 00000000 00001110 = 14
int b = n << 2; // 00000000 00000000 00000000 00011100 = 28
int c = n << 28; // 01110000 00000000 00000000 00000000 = 1879048192
int d = n << 29; // 11100000 00000000 00000000 00000000 = -536870912
左移29位时,由于最高位变成
1
,因此结果变成了负数。同理,右移符号为>>
还有一种无符号的右移运算,使用>>>
,它的特点是不管符号位,右移后高位总是补0
,因此,对一个负数进行>>>
右移,它会变成正数,原因是最高位的1
变成了0
对byte
和short
类型进行移位时,会首先转换为int
再进行位移。
仔细观察可发现,左移实际上就是不断地×2,右移实际上就是不断地÷2。