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();
        }
        

}

 

posted @ 2017-04-17 10:54  冥地魔王  阅读(205)  评论(0)    收藏  举报