Compare commits
2 Commits
1f84ac1076
...
1ea76fef40
Author | SHA1 | Date |
---|---|---|
212206314 | 1ea76fef40 | 2 months ago |
212206314 | bd1029dec6 | 2 months ago |
@ -0,0 +1,3 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="openjdk-22" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Decimal-conversion.iml" filepath="$PROJECT_DIR$/.idea/Decimal-conversion.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,103 @@
|
|||||||
|
import javax.swing.*;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
|
public class BaseConverterGUI extends JFrame implements ActionListener {
|
||||||
|
private JTextField inputField;
|
||||||
|
private JTextField sourceBaseField;
|
||||||
|
private JTextField targetBaseField;
|
||||||
|
private JButton convertButton;
|
||||||
|
private JLabel resultLabel;
|
||||||
|
|
||||||
|
public BaseConverterGUI() {
|
||||||
|
setTitle("基数转换器");
|
||||||
|
setSize(400, 200);
|
||||||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
setLayout(new FlowLayout());
|
||||||
|
|
||||||
|
// 输入框
|
||||||
|
inputField = new JTextField(10);
|
||||||
|
add(new JLabel("输入数值:"));
|
||||||
|
add(inputField);
|
||||||
|
|
||||||
|
// 源基数输入框
|
||||||
|
sourceBaseField = new JTextField(5);
|
||||||
|
add(new JLabel("源基数:"));
|
||||||
|
add(sourceBaseField);
|
||||||
|
|
||||||
|
// 目标基数输入框
|
||||||
|
targetBaseField = new JTextField(5);
|
||||||
|
add(new JLabel("目标基数:"));
|
||||||
|
add(targetBaseField);
|
||||||
|
|
||||||
|
// 转换按钮
|
||||||
|
convertButton = new JButton("转换");
|
||||||
|
convertButton.addActionListener(this);
|
||||||
|
add(convertButton);
|
||||||
|
|
||||||
|
// 结果标签
|
||||||
|
resultLabel = new JLabel("结果:");
|
||||||
|
add(resultLabel);
|
||||||
|
|
||||||
|
setVisible(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
if (e.getSource() == convertButton) {
|
||||||
|
String numStr = inputField.getText();
|
||||||
|
int sourceBase = Integer.parseInt(sourceBaseField.getText());
|
||||||
|
int targetBase = Integer.parseInt(targetBaseField.getText());
|
||||||
|
|
||||||
|
try {
|
||||||
|
String convertedNum = convertBase(numStr, sourceBase, targetBase);
|
||||||
|
resultLabel.setText("转换结果: " + convertedNum + " (基数 " + targetBase + ")");
|
||||||
|
} catch (NumberFormatException ex) {
|
||||||
|
JOptionPane.showMessageDialog(this, "输入无效,请检查输入。");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String convertBase(String numStr, int sourceBase, int targetBase) {
|
||||||
|
int decimal = convertToDecimal(numStr, sourceBase);
|
||||||
|
return convertFromDecimal(decimal, targetBase);
|
||||||
|
}
|
||||||
|
|
||||||
|
private int convertToDecimal(String numStr, int base) {
|
||||||
|
return Integer.parseInt(numStr, base);
|
||||||
|
}
|
||||||
|
|
||||||
|
private String convertFromDecimal(int decimal, int base) {
|
||||||
|
if (base < 2 || base > 16) {
|
||||||
|
throw new IllegalArgumentException("基数必须在2到16之间");
|
||||||
|
}
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
boolean isNegative = decimal < 0;
|
||||||
|
decimal = Math.abs(decimal);
|
||||||
|
|
||||||
|
while (decimal > 0) {
|
||||||
|
int remainder = decimal % base;
|
||||||
|
if (remainder < 10) {
|
||||||
|
result.append(remainder);
|
||||||
|
} else {
|
||||||
|
result.append((char) ('A' + remainder - 10)); // Convert to A-F for bases > 10
|
||||||
|
}
|
||||||
|
decimal /= base;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (result.length() == 0) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isNegative) {
|
||||||
|
result.append('-');
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.reverse().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SwingUtilities.invokeLater(() -> new BaseConverterGUI());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,3 @@
|
|||||||
|
# 默认忽略的文件
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
@ -0,0 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="JAVA_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||||
|
<exclude-output />
|
||||||
|
<content url="file://$MODULE_DIR$">
|
||||||
|
<sourceFolder url="file://$MODULE_DIR$" isTestSource="false" />
|
||||||
|
</content>
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="openjdk-22" project-jdk-type="JavaSDK">
|
||||||
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/Decimal-conversion.iml" filepath="$PROJECT_DIR$/.idea/Decimal-conversion.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
@ -0,0 +1,6 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
Binary file not shown.
@ -0,0 +1,2 @@
|
|||||||
|
# Decimal-conversion
|
||||||
|
|
@ -0,0 +1,41 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8">
|
||||||
|
<title>基数转换器</title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<h1>基数转换器</h1>
|
||||||
|
<form id="baseConverterForm">
|
||||||
|
<label for="sourceBase">源基数 (2-16):</label>
|
||||||
|
<input type="number" id="sourceBase" name="sourceBase" min="2" max="16" required>
|
||||||
|
<br><br>
|
||||||
|
<label for="valueToConvert">要转换的值:</label>
|
||||||
|
<input type="text" id="valueToConvert" name="valueToConvert" required>
|
||||||
|
<br><br>
|
||||||
|
<label for="targetBase">目标基数 (2-16):</label>
|
||||||
|
<input type="number" id="targetBase" name="targetBase" min="2" max="16" required>
|
||||||
|
<br><br>
|
||||||
|
<button type="submit">转换</button>
|
||||||
|
</form>
|
||||||
|
<div id="result"></div>
|
||||||
|
|
||||||
|
<!-- JavaScript代码将放在这里 -->
|
||||||
|
<script>
|
||||||
|
document.getElementById('baseConverterForm').addEventListener('submit', function(event) {
|
||||||
|
event.preventDefault(); // 阻止表单默认提交行为
|
||||||
|
|
||||||
|
const sourceBase = parseInt(document.getElementById('sourceBase').value);
|
||||||
|
const targetBase = parseInt(document.getElementById('targetBase').value);
|
||||||
|
const valueToConvert = document.getElementById('valueToConvert').value.toUpperCase();
|
||||||
|
|
||||||
|
// 转换逻辑
|
||||||
|
let decimalValue = parseInt(valueToConvert, sourceBase);
|
||||||
|
let convertedValue = decimalValue.toString(targetBase);
|
||||||
|
|
||||||
|
// 将结果展示在页面上
|
||||||
|
document.getElementById('result').innerHTML = `转换后的值: ${convertedValue}`;
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
Loading…
Reference in new issue