C语言与或非位运算 Java判断中 if条件

来源:互联网 发布:知乎 桃花灼灼宜室宜家 编辑:程序博客网 时间:2024/05/21 23:33
#include <stdio.h>


int main(void) {

char c1=92;
char c2=92;
printf("%d",c1|c2);
printf("%d",c1^c2);
printf("%d",c1&c2);
printf("%d",~c2);
return 0;

}

输出结果为

92  0  92  -93
^表示异或运算,c1与c2值相同,异或的结果为0
&表示按位与~表示按位取反|表示按位或

Java中if的问题
boolean a=false;
boolean b=false;
if(a=b){
  System.out.printf("True");
}
else{
  System.out.printf("False");
}
此时输出:False,因为a赋值为false,不会执行if下面;
if中改为a==b,输出为True,此时为正确的判断符;
若改b=true,则输出"True",因为a被赋值为true。
试想,当a ,b为int或者String类型时也会是这样吗?
public static void main (String[] args) throws java.lang.Exception{String a="aaa";String b="aaa";if(a=b){System.out.println("ok");}else{System.out.println("bad");}
用=时,其他类型编译均不会通过,因为if()里面要求必须是boolean类型。
用==时,正常上面的例子改为a==b时输出ok。

0 0
原创粉丝点击