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" />