JAVA位运算
JAVA是以补码处理数据。反码是将个位数字取反,补码是反码+1;
位运算左移操作相当于乘2的n次方。向右移是除以2的n次方。
按位取反运算符:~。
计算器存储一个数的方式,首先保留符号位,如果符号位为1,则将其转换成反码,然后加1转换成补码。
按位亦或^运算符相同取0,不同取1。可以用于交换变量。
package Test1;
import java.util.Scanner;
public class MainDemo {
/**
* @param args
*/
/*
* public static boolean shuixian(int num){
int hundredOfDigits=num/100,tenDigits=num/10%10,singleDigits=num%10;
return (hundredOfDigits*hundredOfDigits*hundredOfDigits
+tenDigits*tenDigits*tenDigits
+singleDigits*singleDigits*singleDigits)==num;
}*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*Scanner sc = new Scanner(System.in);
System.out.println("请输入一个三位数的整数");
int num = sc.nextInt();
System.out.println(num);
System.out.println((num>999||num<100)?
"输入有误":shuixian(num)?"是水仙数":"不是水仙数");
sc.close();*/
/*Scanner sc = new Scanner(System.in);
System.out.println("请输入一个 成绩");
int num = sc.nextInt();
System.out.println(num);
System.out.println(num>100||num<0?"不是有效成绩":"成绩为"+(num>90?"A":
num>80?"B":
num>70?"C":
num>60?"D":"E"));
System.out.println(num>100||num<0?"不是有效成绩":"成绩为"+(num>90?"优秀":
num>80?"良好":
num>60?"及格":"不及格"));
sc.close();*/
Scanner sc = new Scanner(System.in);
System.out.println("请输入税前收入:");
double salary = sc.nextDouble();
System.out.println(salary);
System.out.println("请输入各项社会保险:");
double insurance = sc.nextDouble();
double taxSalary = salary - 3500.0- insurance;
double tax = taxSalary<0?0.0:
taxSalary<1500?0.03*taxSalary:
taxSalary<4500?1500*0.03+(taxSalary-1500)*0.1:
taxSalary<9000?1500*0.03+3000*0.1+(taxSalary-4500)*0.2:
taxSalary<35000?1500*0.03+3000*0.1+3500*0.2+(taxSalary-9000)*0.25:
taxSalary<55000?1500*0.03+3000*0.1+3500*0.2+27000*0.25+(taxSalary-35000)*0.3:
taxSalary<80000?1500*0.03+3000*0.1+3500*0.2+27000*0.25+20000*0.3+(taxSalary-55000)*0.35:
1500*0.03+3000*0.1+3500*0.2+27000*0.25+20000*0.3+25000*0.35+(taxSalary-80000)*0.45;
System.out.println("缴纳税款为:"+tax);
System.out.println("到手工资为:"+ (salary-insurance-tax) );
sc.close();
}
}

浙公网安备 33010602011771号