一、算数运算符
sout("'+'运算->输入 3+2 =:" + (3 + 2));
// '+'运算->输入 3+2 =:5
sout("'-'运算->输入 3-2 =:" + (3 - 2));
// '-'运算->输入 3-2 =:1
sout("'*'运算->输入 3*2 =:" + (3 * 2));
// '*'运算->输入 3*2 =:6
sout("'/'运算->输入 3/2 =:" + (3 / 2));
// '/'运算->输入 3/2 =:1
sout("'/'运算->输入 3/1.5 =:" + (3 / 1.5));
// '/'运算->输入 3/1.5 =:2.0
//数值除比他大的数值时,结果为0
sout("'/'运算->输入 3/4 =:" + (3 / 4));
// '/'运算->输入 3/4 =:0
sout("'%'运算->输入 3%2 =:" + (3 % 2));
// '%'运算->输入 3%2 =:1
//数值取余比他大的数值时,结果还是它本身
sout("'%'运算->输入 3%4 =:" + (3 % 4));
// '%'运算->输入 3%4 =:3
int i = 1 , j = 1 , o = 1 , p = 1;
sout("'i++'运算:在i使用后再+1 ->输入 =" + (i++));
// 'i++'运算:在i使用后再+1 ->输入 =1
sout("'++i'运算:在i使用前+1 ->输入 =" + (++j));
// '++i'运算:在i使用前+1 ->输入 =2
sout("'i--'运算:在i使用后再-1 ->输入 =" + (o--));
// 'i--'运算:在i使用后再-1 ->输入 =1
sout("'--i'运算:在i使用前-1 ->输入 =" + (--p));
// '--i'运算:在i使用前-1 ->输入 =0
二、赋值运算符
三、关系运算符
sout("'>'运算 ->输入 2大于3 得:" + (2 > 3));
// '>'运算 ->输入 2大于3 得:false
sout("'<'运算 ->输入 2小于3 得:" + (2 < 3));
// '<'运算 ->输入 2小于3 得:true
sout("'>='运算 ->输入 2大于等于2 得:" + (2 >= 2));
// '>='运算 ->输入 2大于等于2 得:true
sout("'<='运算 ->输入 2小于等于1 得:" + (2 <= 1));
// '<='运算 ->输入 2小于等于1 得:false
sout("'=='运算 ->输入 2等于3 得:" + (2 == 3));
// '=='运算 ->输入 2等于3 得:false
sout("'!='运算 ->输入 2不等于3 得:" + (2 != 3));
// '!='运算 ->输入 2不等于3 得:true
四、逻辑运算符
sout("'&&'运算 ->真和真 得:" + (true && true));
// '&&'运算 ->真和真 得:true
sout("'&&'运算 ->真和假 得:" + (true && false));
// '&&'运算 ->真和假 得:false
sout("'&&'运算 ->假和假 得:" + (false && false));
// '&&'运算 ->假和假 得:false
sout("'||'运算 ->假或假 得:" + (false || false));
// '||'运算 ->假或假 得:false
sout("'||'运算 ->假或真 得:" + (false || true));
// '||'运算 ->假或真 得:true
sout("'!'运算 ->取反假 得:" + (!false));
// '!'运算 ->取反假 得:true
sout("'!'运算 ->取反真 得:" + (!true));
// '!'运算 ->取反真 得:false
五、条件(三目、三元)运算符
boolean ? 值1 : 值2
如果条件表达式成立,true为表达式1,false为表达式2
变量 = 条件表达式 ? 表达式1 : 表达式2;
*****相当于*****
数据类型 变量;
if(条件==true){
变量=表达式1;
}else{
变量=表达式2;
}
六、位运算符
位运算符是在二进制数上进行计算的运算符。
位运算会先将操作数变成二进制数,进行位运算。
然后再将计算结果从二进制数变回十进制数。
(1)二进制判断带符号的数
要判断一个二进制数是否表示负数,需要查看其最高位(最左边的位)。
以下是判断二进制数是十进制负数的方法:
1. 如果最高位(最左边的位)为0,则表示该二进制数是正数或零。
2. 如果最高位为1,则表示该二进制数是负数。此时,可以使用补码表示法来表示负数。
在补码表示法中,最高位为1表示负数,其余位表示绝对值的二进制表示形式。
可以通过将补码转换为原码,然后转换为十进制来获得负数的值。
举个例子:
假设有一个8位的二进制数:10101010
最高位为1,因此该二进制数表示负数。我们可以将其转换为负数的十进制值:
1. 首先将补码转换为原码,即将其按位取反并加1,得到原码:11010110
2. 然后将原码转换为十进制:-(11010110) = -214
因此,二进制数10101010表示的是十进制负数-214。
(2)二进制和十进制换算公式
-----将二进制转换为十进制:
从二进制的最右边(个位)开始,每一位乘以2的对应次方,然后将结果相加。
例如,二进制数1101转换为十进制:
1 * 2^3 + 1 * 2^2 + 0 * 2^1 + 1 * 2^0 = 13
-----将十进制转换为二进制:
将十进制数除以2,得到的商再除以2,重复这个过程直到商为0。
将每次的余数从下往上排列,得到的结果即为二进制数。
例如,十进制数13转换为二进制:
13 / 2 = 6 余 1
6 / 2 = 3 余 0
3 / 2 = 1 余 1
1 / 2 = 0 余 1
从下往上排列余数: 1101
(3)负数二进制和十进制换算公式
负数在计算机中使用补码表示。补码是对二进制数的取反加一。
下面是负数二进制和十进制之间的换算公式:
将负数的绝对值转换为二进制:
1. 首先将负数的绝对值转换为正数的二进制表示形式。
将正数的二进制表示形式取反:
2. 将正数的二进制表示形式按位取反,即0变为1,1变为0,得到反码。
将反码加1:
3. 将反码加1,得到补码。
举例说明:
将十进制数-7转换为二进制:
1. 先将7转换为二进制:7的二进制表示为0111。
取反得到反码:1000。
将反码加1得到补码:1001。
将二进制1001转换回十进制:
1. 如果最高位是1,则表示这是一个负数。所以我们需要将补码转换为负数。
2. 首先将补码减1,得到反码:1000。
3. 对反码按位取反,得到原码:1111。
4. 将原码转换为十进制,得到-7。
①&按位与
表达式 3 & 5 是对整数 3 和 5 进行位与运算。
让我们将数值 3 和 5 转换为二进制形式进行位与运算:
- 3 的二进制表示为 00000011
- 5 的二进制表示为 00000101
将它们进行位与运算,得到:
位与运算符(&)将两个操作数的每个对应位进行与运算,只有两个位都为1时,结果位才为1。
00000011
& 00000101
-----------
00000001 转换为十进制:1
3 & 5 的结果为 1
②|按位或
位或运算,得到:
位或运算符(|)将两个操作数的每个对应位进行或运算,只要两个位中至少有一个为1时,结果位就为1。
00000011
| 00000101
-----------
00000111 转换为十进制:7
3 | 5 的结果为 7
③^按位异或
位异或运算,得到:
位异或运算符(^)将两个操作数的每个对应位进行异或运算,当两个位不同时,结果位为1,否则为0。
00000011
^ 00000101
-----------
00000110 转换为十进制:6
3 ^ 5 的结果为 6
④~按位取反
让我们将数值-4转换为二进制形式进行按位取反运算:
- -4 的二进制表示为 11111100
将它进行按位取反运算,得到:
波浪号(~)表示按位取反运算。按位取反运算是一元运算符,它将操作数的每个位取反,
即将0变为1,将1变为0。
~ 11111100
-----------
00000011 转换为十进制:3
~-4 的结果为 3。
⑤<<左移
3 的二进制表示为 00000011
将其向左移动 5 位:
它将一个数的所有位向左移动指定的位数,移动的过程中,在右侧用零填充。
00000011 << 5
-----------
01100000 转换为十进制数为 96
3 << 5 的结果为 96
⑥>>右移
将其向右移动 5 位:
它将一个数的所有位向右移动指定的位数,移动的过程中,在左侧用符号位填充(正数用0填充,负数用1填充)。
00000011 >> 5
-----------
00000000
3 >> 5 的结果为 0
向右移动 5 位后,所有的位都被移出了,剩下的都是0。