Android Studio的2进制计算器代码QZQ

java代码

package com.example.a2jzjsq;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

private EditText editText1;
private EditText editText2;
private TextView textViewResult;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    editText1 = findViewById(R.id.editText1);
    editText2 = findViewById(R.id.editText2);
    textViewResult = findViewById(R.id.textViewResult);

    Button buttonAdd = findViewById(R.id.buttonAdd);
    buttonAdd.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinaryAddition();
        }
    });

    Button buttonSubtract = findViewById(R.id.buttonSubtract);
    buttonSubtract.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinarySubtraction();
        }
    });

    Button buttonMultiply = findViewById(R.id.buttonMultiply);
    buttonMultiply.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinaryMultiplication();
        }
    });

    Button buttonDivide = findViewById(R.id.buttonDivide);
    buttonDivide.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinaryDivision();
        }
    });

    Button buttonSqrt = findViewById(R.id.buttonSqrt);
    buttonSqrt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinarySqrt();
        }
    });

    Button buttonPower = findViewById(R.id.buttonPower);
    buttonPower.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinaryPower();
        }
    });

    Button buttonFactorial = findViewById(R.id.buttonFactorial);
    buttonFactorial.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performBinaryFactorial();
        }
    });
}

private void performBinaryAddition() {
    String binary1 = editText1.getText().toString();
    String binary2 = editText2.getText().toString();
    int decimal1 = binaryToDecimal(binary1);
    int decimal2 = binaryToDecimal(binary2);
    int resultDecimal = decimal1 + decimal2;
    String resultBinary = decimalToBinary(resultDecimal);
    textViewResult.setText(resultBinary);
}

private void performBinarySubtraction() {
    String binary1 = editText1.getText().toString();
    String binary2 = editText2.getText().toString();
    int decimal1 = binaryToDecimal(binary1);
    int decimal2 = binaryToDecimal(binary2);
    int resultDecimal = decimal1 - decimal2;
    String resultBinary = decimalToBinary(resultDecimal);
    textViewResult.setText(resultBinary);
}

private void performBinaryMultiplication() {
    String binary1 = editText1.getText().toString();
    String binary2 = editText2.getText().toString();
    int decimal1 = binaryToDecimal(binary1);
    int decimal2 = binaryToDecimal(binary2);
    int resultDecimal = decimal1 * decimal2;
    String resultBinary = decimalToBinary(resultDecimal);
    textViewResult.setText(resultBinary);
}

private void performBinaryDivision() {
    String binary1 = editText1.getText().toString();
    String binary2 = editText2.getText().toString();
    int decimal1 = binaryToDecimal(binary1);
    int decimal2 = binaryToDecimal(binary2);
    if (decimal2 == 0) {
        textViewResult.setText("除数不能为零");
    } else {
        int resultDecimal = decimal1 / decimal2;
        String resultBinary = decimalToBinary(resultDecimal);
        textViewResult.setText(resultBinary);
    }
}

private void performBinarySqrt() {
    String binary = editText1.getText().toString();
    int decimal = binaryToDecimal(binary);
    double sqrtDecimal = Math.sqrt(decimal);
    String resultBinary = decimalToBinary((int) sqrtDecimal);
    textViewResult.setText(resultBinary);
}

private void performBinaryPower() {
    String binary1 = editText1.getText().toString();
    String binary2 = editText2.getText().toString();
    int decimal1 = binaryToDecimal(binary1);
    int decimal2 = binaryToDecimal(binary2);
    int resultDecimal = (int) Math.pow(decimal1, decimal2);
    String resultBinary = decimalToBinary(resultDecimal);
    textViewResult.setText(resultBinary);
}

private void performBinaryFactorial() {
    String binary = editText1.getText().toString();
    int decimal = binaryToDecimal(binary);
    int factorial = 1;
    for (int i = 2; i <= decimal; i++) {
        factorial *= i;
    }
    String resultBinary = decimalToBinary(factorial);
    textViewResult.setText(resultBinary);
}

private int binaryToDecimal(String binary) {
    return Integer.parseInt(binary, 2);
}

private String decimalToBinary(int decimal) {
    return Integer.toBinaryString(decimal);
}

}

xml代码

<?xml version="1.0" encoding="utf-8"?>

<EditText
    android:id="@+id/editText1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="输入第一个二进制数" />

<EditText
    android:id="@+id/editText2"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="输入第二个二进制数" />

<Button
    android:id="@+id/buttonAdd"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="+" />

<Button
    android:id="@+id/buttonSubtract"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="-" />

<Button
    android:id="@+id/buttonMultiply"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="*" />

<Button
    android:id="@+id/buttonDivide"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="/" />

<Button
    android:id="@+id/buttonSqrt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="平方根" />

<Button
    android:id="@+id/buttonPower"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="幂运算" />

<Button
    android:id="@+id/buttonFactorial"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="阶乘" />

<TextView
    android:id="@+id/textViewResult"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" />

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

EYYLTV

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值