Compare commits

...

No commits in common. 'main' and 'dev' have entirely different histories.
main ... dev

@ -0,0 +1 @@
1.txr

@ -0,0 +1 @@
ASDAS

@ -0,0 +1 @@
kkkkk

@ -0,0 +1 @@
Subproject commit 29163f9d6921087c0f9b9749428924f613e09013

@ -1,2 +0,0 @@
# 670685

@ -0,0 +1,82 @@
commit 800d62e6d558ef19f046ea0d70ed2c0dd74374d9
Author: 214115093 <214115093@qq.com>
Date: Thu Oct 10 14:46:20 2024 +0800
zhuanhuan
diff --git a/jinzhizhuanhuan.java b/jinzhizhuanhuan.java
new file mode 100644
index 0000000..10c0651
--- /dev/null
+++ b/jinzhizhuanhuan.java
@@ -0,0 +1,69 @@
+import java.util.Scanner;
+public class jinzhizhuanhuan {
+
+
+
+
+
+ // 将任意进制数转换为十进制数
+ public static int toDecimal(String number, int base) {
+ int decimal = 0;
+ int power = 0;
+ int len = number.length();
+
+ for (int i = len - 1; i >= 0; i--) {
+ char digit = number.charAt(i);
+ int value = Character.digit(digit, base);
+ if (value == -1) {
+ throw new IllegalArgumentException("Invalid digit for base " + base + ": " + digit);
+ }
+ decimal += value * Math.pow(base, power);
+ power++;
+ }
+
+ return decimal;
+ }
+
+ // 将十进制数转换为任意进制数
+ public static String fromDecimal(int number, int base) {
+ if (number == 0) {
+ return "0";
+ }
+
+ StringBuilder result = new StringBuilder();
+ char[] digits = "0123456789ABCDEF".toCharArray();
+
+ while (number > 0) {
+ int remainder = number % base;
+ result.insert(0, digits[remainder]);
+ number /= base;
+ }
+
+ return result.toString();
+ }
+
+ public static void main(String[] args) {
+ Scanner scanner = new Scanner(System.in);
+
+ // 输入原始进制和数
+ System.out.print("请输入原始进制2-16: ");
+ int sourceBase = scanner.nextInt();
+ System.out.print("请输入原始数: ");
+ String sourceNumber = scanner.next();
+
+ // 输入目标进制
+ System.out.print("请输入目标进制2-16: ");
+ int targetBase = scanner.nextInt();
+
+ // 转换并输出结果
+ try {
+ int decimal = toDecimal(sourceNumber, sourceBase);
+ String targetNumber = fromDecimal(decimal, targetBase);
+ System.out.println("转换后的数是: " + targetNumber);
+ } catch (IllegalArgumentException e) {
+ System.out.println(e.getMessage());
+ }
+
+ scanner.close();
+ }
+}
\ No newline at end of file

@ -0,0 +1,74 @@
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<title>进制转换</title>
<script>
function toDecimal(number, base) {
let decimal = 0;
let power = 0;
for (let i = number.length - 1; i >= 0; i--) {
let digit = number[i];
let value = parseInt(digit, base);
if (isNaN(value)) {
alert(`无效的数字 ${digit} 对于基数 ${base}`);
return null;
}
decimal += value * Math.pow(base, power);
power++;
}
return decimal;
}
function fromDecimal(number, base) {
if (number === 0) {
return "0";
}
let result = "";
const digits = "0123456789ABCDEF";
while (number > 0) {
let remainder = number % base;
result = digits[remainder] + result;
number = Math.floor(number / base);
}
return result;
}
function convert() {
let sourceBase = document.getElementById('sourceBase').value;
let sourceNumber = document.getElementById('sourceNumber').value.toUpperCase();
let targetBase = document.getElementById('targetBase').value;
if (sourceBase < 2 || sourceBase > 16 || targetBase < 2 || targetBase > 16) {
alert("基数必须在2到16之间");
return;
}
let decimal = toDecimal(sourceNumber, sourceBase);
if (decimal !== null) {
let targetNumber = fromDecimal(decimal, targetBase);
document.getElementById('result').innerText = `转换后的数是: ${targetNumber}`;
}
}
</script>
</head>
<body>
<h1>进制转换器</h1>
<form onsubmit="event.preventDefault(); convert();">
<label for="sourceBase">原始进制2-16:</label>
<input type="number" id="sourceBase" required min="2" max="16"><br><br>
<label for="sourceNumber">原始数:</label>
<input type="text" id="sourceNumber" required pattern="[0-9A-Fa-f]*"><br><br>
<label for="targetBase">目标进制2-16:</label>
<input type="number" id="targetBase" required min="2" max="16"><br><br>
<button type="submit">转换</button>
</form>
<p id="result"></p>
</body>
</html>
Loading…
Cancel
Save