Android Studio36进制计算器代码

java代码

package com.example.a36jzjsq;

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 inputText1, inputText2;
private TextView resultText;

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

    inputText1 = findViewById(R.id.input1);
    inputText2 = findViewById(R.id.input2);
    resultText = findViewById(R.id.result);

    Button addButton = findViewById(R.id.add_button);
    addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("add");
        }
    });

    Button subtractButton = findViewById(R.id.subtract_button);
    subtractButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("subtract");
        }
    });

    Button multiplyButton = findViewById(R.id.multiply_button);
    multiplyButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("multiply");
        }
    });

    Button divideButton = findViewById(R.id.divide_button);
    divideButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("divide");
        }
    });

    Button squareRootButton = findViewById(R.id.square_root_button);
    squareRootButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("squareRoot");
        }
    });

    Button powerButton = findViewById(R.id.power_button);
    powerButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("power");
        }
    });

    Button factorialButton = findViewById(R.id.factorial_button);
    factorialButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            performOperation("factorial");
        }
    });
}

private void performOperation(String operation) {
    String num1 = inputText1.getText().toString();
    String num2 = inputText2.getText().toString();
    String result = "";
    try {
        switch (operation) {
            case "add":
                result = addBase36(num1, num2);
                break;
            case "subtract":
                result = subtractBase36(num1, num2);
                break;
            case "multiply":
                result = multiplyBase36(num1, num2);
                break;
            case "divide":
                result = divideBase36(num1, num2);
                break;
            case "squareRoot":
                result = squareRootBase36(num1);
                break;
            case "power":
                result = powerBase36(num1, num2);
                break;
            case "factorial":
                result = factorialBase36(num1);
                break;
        }
    } catch (NumberFormatException e) {
        result = "Invalid input";
    }
    resultText.setText(result);
}

public static String decimalToBase36(int decimal) {
    if (decimal == 0) {
        return "0";
    }
    StringBuilder base36 = new StringBuilder();
    while (decimal > 0) {
        int remainder = decimal % 36;
        if (remainder < 10) {
            base36.append((char) ('0' + remainder));
        } else {
            base36.append((char) ('a' + remainder - 10));
        }
        decimal /= 36;
    }
    return base36.reverse().toString();
}

public static int base36ToDecimal(String base36) {
    int decimal = 0;
    int power = 0;
    for (int i = base36.length() - 1; i >= 0; i--) {
        char digit = base36.charAt(i);
        int value;
        if (digit >= '0' && digit <= '9') {
            value = digit - '0';
        } else {
            value = digit - 'a' + 10;
        }
        decimal += value * Math.pow(36, power);
        power++;
    }
    return decimal;
}

public static String addBase36(String num1, String num2) {
    int decimal1 = base36ToDecimal(num1);
    int decimal2 = base36ToDecimal(num2);
    int sum = decimal1 + decimal2;
    return decimalToBase36(sum);
}

public static String subtractBase36(String num1, String num2) {
    int decimal1 = base36ToDecimal(num1);
    int decimal2 = base36ToDecimal(num2);
    int difference = decimal1 - decimal2;
    return decimalToBase36(difference);
}

public static String multiplyBase36(String num1, String num2) {
    int decimal1 = base36ToDecimal(num1);
    int decimal2 = base36ToDecimal(num2);
    int product = decimal1 * decimal2;
    return decimalToBase36(product);
}

public static String divideBase36(String num1, String num2) {
    int decimal1 = base36ToDecimal(num1);
    int decimal2 = base36ToDecimal(num2);
    if (decimal2 == 0) {
        return "Error: Division by zero";
    }
    int quotient = decimal1 / decimal2;
    return decimalToBase36(quotient);
}

public static String squareRootBase36(String num) {
    int decimal = base36ToDecimal(num);
    double squareRootDecimal = Math.sqrt(decimal);
    return decimalToBase36((int) squareRootDecimal);
}

public static String powerBase36(String num1, String num2) {
    int decimal1 = base36ToDecimal(num1);
    int decimal2 = base36ToDecimal(num2);
    int result = (int) Math.pow(decimal1, decimal2);
    return decimalToBase36(result);
}

public static String factorialBase36(String num) {
    int decimal = base36ToDecimal(num);
    int factorial = 1;
    for (int i = 2; i <= decimal; i++) {
        factorial *= i;
    }
    return decimalToBase36(factorial);
}

}

xml代码

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

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <EditText
        android:id="@+id/input1"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:hint="Number 1"/>

    <EditText
        android:id="@+id/input2"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:hint="Number 2"/>
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/add_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Add"/>

    <Button
        android:id="@+id/subtract_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Subtract"/>

    <Button
        android:id="@+id/multiply_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Multiply"/>

    <Button
        android:id="@+id/divide_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Divide"/>
</LinearLayout>

<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <Button
        android:id="@+id/square_root_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Square Root"/>

    <Button
        android:id="@+id/power_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Power"/>

    <Button
        android:id="@+id/factorial_button"
        android:layout_width="0dp"
        android:layout_weight="1"
        android:layout_height="wrap_content"
        android:text="Factorial"/>
</LinearLayout>

<TextView
    android:id="@+id/result"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="Result"/>
以下是一个简单的 Android Studio 项目,可以将十进制数转换为二进制、八进制和十六进制: 1. 首先,在 Android Studio 中创建一个新项目,并在 MainActivity.java 文件中添加以下代码: ```java import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { Button btnConvert; EditText etDecimal; TextView tvBinary, tvOctal, tvHexadecimal; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnConvert = findViewById(R.id.btnConvert); etDecimal = findViewById(R.id.etDecimal); tvBinary = findViewById(R.id.tvBinary); tvOctal = findViewById(R.id.tvOctal); tvHexadecimal = findViewById(R.id.tvHexadecimal); btnConvert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { int decimal = Integer.parseInt(etDecimal.getText().toString()); String binary = Integer.toBinaryString(decimal); String octal = Integer.toOctalString(decimal); String hexadecimal = Integer.toHexString(decimal).toUpperCase(); tvBinary.setText(binary); tvOctal.setText(octal); tvHexadecimal.setText(hexadecimal); } }); } } ``` 2. 接下来,在 activity_main.xml 文件中添加以下代码: ```xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <EditText android:id="@+id/etDecimal" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter decimal number" android:inputType="number" /> <Button android:id="@+id/btnConvert" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/etDecimal" android:text="Convert" /> <TextView android:id="@+id/tvBinary" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/btnConvert" android:text="Binary:" /> <TextView android:id="@+id/tvOctal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tvBinary" android:text="Octal:" /> <TextView android:id="@+id/tvHexadecimal" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_below="@id/tvOctal" android:text="Hexadecimal:" /> </RelativeLayout> ``` 3. 运行应用程序,并输入十进制数,然后点击“Convert”按钮即可看到转换后的二进制、八进制和十六进制数。 注意:此应用程序只能处理小于 2^31 的十进制数。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

EYYLTV

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

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

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

打赏作者

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

抵扣说明:

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

余额充值