注:~ 取反位。二进制1变0,0变1
& 按位与。相应位都为1结果为1,否则为0
| 按位或。相应位只要有一个为1,则为1
^ 按位异或。相应位相同,则为0本人急求语句理解,由于现今的计算机教科书粗糟的很,很多的不详细,学起来问题很多,下个月又要考试了,请论坛各位大哥帮帮忙,小弟跪谢了........①取模运算符%,其操作数可以为浮点数,如:45.4%10=5.4
例子:int i = 10,j = 3
float m = 213.5f,n = 4.0f
i%j = 1 ; m%n = 1.5
(符号“/”和“%”不是一样的吗?“%”不是取余数吗?书上的例子的结果费解)②public class OperatorsAndExpressions {
void string plus(){
int x = 3,y = 4,z = 5;
String s ="xyz=";
System.out.println(x+y+z);
System.out.println(s+x+y+z);
System.out.println(x+y+z+s);
}
pubilc static void main(String args[]){
OperatorsAndExpressions OperAndExp = new OperatorsAndExpressions();
OperAndExp.stringPlus();
}
}
(这段中出来的答案如何理解?答案是:12;xyz=345; 12xyz=。后面2个答案无法理解)
③int a = 15,b = 24; //a的最右边8位为00001111,b的最右边8位00011000,a和b其余位为0
a = a^b; //a的最右边8位为00010111,a=23
b = b^a; //b的最右边8位为00001111,b=15
a = a^b; //a的最右边8位为00011000,a=24
(此题结果根本无法理解了....a^b 不就跟 b^a 结果一样了吗?其中区别在哪?)
& 按位与。相应位都为1结果为1,否则为0
| 按位或。相应位只要有一个为1,则为1
^ 按位异或。相应位相同,则为0本人急求语句理解,由于现今的计算机教科书粗糟的很,很多的不详细,学起来问题很多,下个月又要考试了,请论坛各位大哥帮帮忙,小弟跪谢了........①取模运算符%,其操作数可以为浮点数,如:45.4%10=5.4
例子:int i = 10,j = 3
float m = 213.5f,n = 4.0f
i%j = 1 ; m%n = 1.5
(符号“/”和“%”不是一样的吗?“%”不是取余数吗?书上的例子的结果费解)②public class OperatorsAndExpressions {
void string plus(){
int x = 3,y = 4,z = 5;
String s ="xyz=";
System.out.println(x+y+z);
System.out.println(s+x+y+z);
System.out.println(x+y+z+s);
}
pubilc static void main(String args[]){
OperatorsAndExpressions OperAndExp = new OperatorsAndExpressions();
OperAndExp.stringPlus();
}
}
(这段中出来的答案如何理解?答案是:12;xyz=345; 12xyz=。后面2个答案无法理解)
③int a = 15,b = 24; //a的最右边8位为00001111,b的最右边8位00011000,a和b其余位为0
a = a^b; //a的最右边8位为00010111,a=23
b = b^a; //b的最右边8位为00001111,b=15
a = a^b; //a的最右边8位为00011000,a=24
(此题结果根本无法理解了....a^b 不就跟 b^a 结果一样了吗?其中区别在哪?)
System.out.println(s+x+y+z); //四个操作数中有一个String类型,则三个+都是字符串的连接符,把非字符串类型的操作数:x,y,z先转为字符,再用+连接为一个字符串。
System.out.println(x+y+z+s); //同上。
③int a = 15,b = 24; //a的最右边8位为00001111,b的最右边8位00011000,a和b其余位为0
a = a^b; //a的最右边8位为00010111,a=23
b = b^a; //b的最右边8位为00001111,b=15
a = a^b; //a的最右边8位为00011000,a=24 这个是经典的不用第三个变量互换两个变量的算法。
a^b是和b^a一样,但你没有发现三都的操作数在变化?你写成下面的也是一样的结果。a=b^a;
b=a^b;
a=b^a;还可以写为:b=^=a^=b;
a^=b;类似的还有:
a=a+b;
b=a-b;
a=a-b;
/除法
213.5%4.0解释:213里头有53个4.0,就剩下1.5可。System.out.println(s+x+y+z); //s是串,根据优先顺序,都以字符串来连接
System.out.println(x+y+z+s); //同上,x,y,z都是数字,根据优先顺序之后,才产生结果