Compare commits
No commits in common. 'master' and 'main' have entirely different histories.
@ -1,3 +0,0 @@
|
|||||||
# 默认忽略的文件
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
@ -1,11 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/lesson1.iml" filepath="$PROJECT_DIR$/.idea/lesson1.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -0,0 +1,81 @@
|
|||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
// Helper function to convert a number from any base to decimal
|
||||||
|
public static long convertToDecimal(String number, int base) {
|
||||||
|
long result = 0;
|
||||||
|
int power = 0;
|
||||||
|
|
||||||
|
// Traverse the number from right to left
|
||||||
|
for (int i = number.length() - 1; i >= 0; i--) {
|
||||||
|
char digit = number.charAt(i);
|
||||||
|
int value = 0;
|
||||||
|
|
||||||
|
// Convert character to integer value
|
||||||
|
if (Character.isDigit(digit)) {
|
||||||
|
value = digit - '0';
|
||||||
|
} else {
|
||||||
|
value = Character.toUpperCase(digit) - 'A' + 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if the value is within the allowed range for the given base
|
||||||
|
if (value >= base) {
|
||||||
|
throw new IllegalArgumentException("Invalid digit for the given base");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add the digit's value to the result
|
||||||
|
result += value * Math.pow(base, power);
|
||||||
|
power++;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Helper function to convert a number from decimal to any base
|
||||||
|
public static String convertFromDecimal(long number, int base) {
|
||||||
|
if (number == 0) {
|
||||||
|
return "0";
|
||||||
|
}
|
||||||
|
|
||||||
|
StringBuilder result = new StringBuilder();
|
||||||
|
char[] digits = "0123456789ABCDEF".toCharArray();
|
||||||
|
|
||||||
|
while (number > 0) {
|
||||||
|
int remainder = (int) (number % base);
|
||||||
|
result.insert(0, digits[remainder]);
|
||||||
|
number /= base;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Scanner scanner = new Scanner(System.in);
|
||||||
|
|
||||||
|
// Input the number X in any base Rx
|
||||||
|
System.out.print("输入数字X: ");
|
||||||
|
String numberX = scanner.nextLine();
|
||||||
|
System.out.print("Enter the base Rx (2-16): ");
|
||||||
|
int baseX = scanner.nextInt();
|
||||||
|
|
||||||
|
// Input the target base Ry
|
||||||
|
System.out.print("Enter the target base Ry (2-16): ");
|
||||||
|
int baseY = scanner.nextInt();
|
||||||
|
|
||||||
|
try {
|
||||||
|
// Convert X to decimal
|
||||||
|
long decimalValue = convertToDecimal(numberX, baseX);
|
||||||
|
|
||||||
|
// Convert decimal to target base Y
|
||||||
|
String numberY = convertFromDecimal(decimalValue, baseY);
|
||||||
|
|
||||||
|
// Output the result
|
||||||
|
System.out.println("The number " + numberX + " in base " + baseX + " is " + numberY + " in base " + baseY);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
scanner.close();
|
||||||
|
}
|
||||||
|
}
|
@ -1,3 +0,0 @@
|
|||||||
# 默认忽略的文件
|
|
||||||
/shelf/
|
|
||||||
/workspace.xml
|
|
@ -1,11 +0,0 @@
|
|||||||
<?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>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
|
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,8 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="ProjectModuleManager">
|
|
||||||
<modules>
|
|
||||||
<module fileurl="file://$PROJECT_DIR$/.idea/lesson1.iml" filepath="$PROJECT_DIR$/.idea/lesson1.iml" />
|
|
||||||
</modules>
|
|
||||||
</component>
|
|
||||||
</project>
|
|
@ -1,6 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<project version="4">
|
|
||||||
<component name="VcsDirectoryMappings">
|
|
||||||
<mapping directory="" vcs="Git" />
|
|
||||||
</component>
|
|
||||||
</project>
|
|
Binary file not shown.
@ -1,100 +0,0 @@
|
|||||||
import javafx.application.Application;
|
|
||||||
import javafx.scene.Scene;
|
|
||||||
import javafx.scene.control.Alert;
|
|
||||||
import javafx.scene.control.Button;
|
|
||||||
import javafx.scene.control.Label;
|
|
||||||
import javafx.scene.control.TextField;
|
|
||||||
import javafx.scene.layout.VBox;
|
|
||||||
import javafx.stage.Stage;
|
|
||||||
|
|
||||||
public class test2 extends Application {
|
|
||||||
@Override
|
|
||||||
public void start(Stage primaryStage) {
|
|
||||||
// 创建VBox作为垂直布局容器
|
|
||||||
VBox vBox = new VBox(10.0);
|
|
||||||
|
|
||||||
// 创建提示标签
|
|
||||||
Label promptLabel = new Label("请输入一个数字");
|
|
||||||
promptLabel.setStyle("-fx-font-weight: bold;");
|
|
||||||
|
|
||||||
// 创建输入框并设置提示文本
|
|
||||||
TextField inputField = new TextField();
|
|
||||||
inputField.setPromptText("输入数字");
|
|
||||||
|
|
||||||
// 创建输入框并设置提示文本
|
|
||||||
TextField fromBaseField = new TextField();
|
|
||||||
fromBaseField.setPromptText("输入原始进制");
|
|
||||||
|
|
||||||
// 创建输入框并设置提示文本
|
|
||||||
TextField toBaseField = new TextField();
|
|
||||||
toBaseField.setPromptText("输入目标进制");
|
|
||||||
|
|
||||||
// 创建标签用于显示转换结果
|
|
||||||
Label resultLabel = new Label();
|
|
||||||
|
|
||||||
// 创建按钮
|
|
||||||
Button convertButton = new Button("转换");
|
|
||||||
|
|
||||||
// 更新标签的函数
|
|
||||||
final TextField finalInputField = inputField;
|
|
||||||
final TextField finalFromBaseField = fromBaseField;
|
|
||||||
final TextField finalToBaseField = toBaseField;
|
|
||||||
|
|
||||||
convertButton.setOnAction(e -> {
|
|
||||||
try {
|
|
||||||
String inputText = finalInputField.getText();
|
|
||||||
int fromBase = Integer.parseInt(finalFromBaseField.getText());
|
|
||||||
int toBase = Integer.parseInt(finalToBaseField.getText());
|
|
||||||
|
|
||||||
// 将输入的数字从原始进制转换为十进制
|
|
||||||
int decimalNumber = Integer.parseInt(inputText, fromBase);
|
|
||||||
|
|
||||||
// 将十进制数字转换为目标进制
|
|
||||||
String result = toBaseString(decimalNumber, toBase);
|
|
||||||
|
|
||||||
resultLabel.setText(String.format("%d 进制: %s", toBase, result));
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR);
|
|
||||||
alert.setTitle("输入错误");
|
|
||||||
alert.setHeaderText("无效输入");
|
|
||||||
alert.setContentText("请输入有效的数字和进制。");
|
|
||||||
alert.showAndWait();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 将组件添加到布局中
|
|
||||||
vBox.getChildren().addAll(promptLabel, inputField, fromBaseField, toBaseField, convertButton, resultLabel);
|
|
||||||
|
|
||||||
// 设置场景和舞台
|
|
||||||
Scene scene = new Scene(vBox, 300.0, 200.0);
|
|
||||||
primaryStage.setTitle("进制转换器");
|
|
||||||
primaryStage.setScene(scene);
|
|
||||||
primaryStage.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
// 将十进制数转换为指定进制的字符串
|
|
||||||
private String toBaseString(int number, int base) {
|
|
||||||
if (number == 0) {
|
|
||||||
return "0";
|
|
||||||
} else {
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
char[] digits = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
|
|
||||||
boolean isNegative = number < 0;
|
|
||||||
if (isNegative) {
|
|
||||||
number = -number;
|
|
||||||
}
|
|
||||||
while (number > 0) {
|
|
||||||
sb.insert(0, digits[number % base]);
|
|
||||||
number /= base;
|
|
||||||
}
|
|
||||||
if (isNegative) {
|
|
||||||
sb.insert(0, '-');
|
|
||||||
}
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
launch(args);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,75 +0,0 @@
|
|||||||
import javafx.application.Application;
|
|
||||||
import javafx.scene.Scene;
|
|
||||||
import javafx.scene.control.*;
|
|
||||||
import javafx.scene.layout.VBox;
|
|
||||||
import javafx.stage.Stage;
|
|
||||||
|
|
||||||
public class text1 extends Application {
|
|
||||||
private String toBase6String(int number) {
|
|
||||||
if (number == 0) {
|
|
||||||
return "0";
|
|
||||||
}
|
|
||||||
StringBuilder sb = new StringBuilder();
|
|
||||||
char[] digits = {'0', '1', '2', '3', '4', '5'};
|
|
||||||
boolean isNegative = number < 0;
|
|
||||||
if (isNegative) {
|
|
||||||
number = -number;
|
|
||||||
}
|
|
||||||
while (number > 0) {
|
|
||||||
sb.insert(0, digits[number % 6]);
|
|
||||||
number /= 6;
|
|
||||||
}
|
|
||||||
if (isNegative) {
|
|
||||||
sb.insert(0, '-');
|
|
||||||
}
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
@Override
|
|
||||||
public void start(Stage primaryStage) {
|
|
||||||
// 创建文本输入框
|
|
||||||
TextField inputField = new TextField();
|
|
||||||
inputField.setPromptText("输入一个十进制数");
|
|
||||||
VBox vBox = new VBox(10);
|
|
||||||
// 创建标签显示结果
|
|
||||||
Label binaryLabel = new Label();
|
|
||||||
Label octalLabel = new Label();
|
|
||||||
Label hexLabel = new Label();
|
|
||||||
|
|
||||||
//
|
|
||||||
|
|
||||||
// 创建按钮
|
|
||||||
Button convertButton = new Button("转换");
|
|
||||||
convertButton.setOnAction(e -> {
|
|
||||||
try {
|
|
||||||
int number = Integer.parseInt(inputField.getText());
|
|
||||||
binaryLabel.setText(String.format("二进制: %s", Integer.toBinaryString(number).toUpperCase()));
|
|
||||||
octalLabel.setText(String.format("八进制: %s", Integer.toOctalString(number)));
|
|
||||||
hexLabel.setText(String.format("十六进制: %s", Integer.toHexString(number).toUpperCase()));
|
|
||||||
Label base6Label = new Label();
|
|
||||||
base6Label.setText(String.format("六进制: %s", toBase6String(number)));
|
|
||||||
vBox.getChildren().add(base6Label);
|
|
||||||
} catch (NumberFormatException ex) {
|
|
||||||
Alert alert = new Alert(Alert.AlertType.ERROR);
|
|
||||||
alert.setTitle("输入错误");
|
|
||||||
alert.setHeaderText("无效输入");
|
|
||||||
alert.setContentText("请输入一个有效的十进制数。");
|
|
||||||
alert.showAndWait();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// 创建布局
|
|
||||||
|
|
||||||
vBox.getChildren().addAll(inputField, convertButton, binaryLabel, octalLabel, hexLabel);
|
|
||||||
|
|
||||||
// 设置场景
|
|
||||||
Scene scene = new Scene(vBox, 300, 200);
|
|
||||||
|
|
||||||
primaryStage.setTitle("进制转换器");
|
|
||||||
primaryStage.setScene(scene);
|
|
||||||
primaryStage.show();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void main(String[] args) {
|
|
||||||
launch(args);
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in new issue