蒋蒸 2 months ago
parent 26a6cc7932
commit bf70d0f032

3
.idea/.gitignore vendored

@ -0,0 +1,3 @@
# Default ignored files
/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="1.8 (2)" 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/computer1.iml" filepath="$PROJECT_DIR$/.idea/computer1.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>

@ -0,0 +1,87 @@
import java.util.Scanner;
public class computer {
// 将任意进制数转换为十进制数
public static int toDecimal(String number, int base) {
int decimal = 0;
int power = 0;
// 从字符串的末尾开始遍历
for (int i = number.length() - 1; i >= 0; i--) {
char digit = number.charAt(i);
int value;
// 处理0-9的数字字符
if (digit >= '0' && digit <= '9') {
value = digit - '0';
}
// 处理A-F或a-f的十六进制字符
else if (digit >= 'A' && digit <= 'F') {
value = digit - 'A' + 10;
} else if (digit >= 'a' && digit <= 'f') {
value = digit - 'a' + 10;
} else {
throw new IllegalArgumentException("Invalid character in number: " + digit);
}
// 根据当前字符的权重(即它在数中的位置)累加其值
decimal += value * Math.pow(base, power);
power++;
}
return decimal;
}
// 将十进制数转换为任意进制数
public static String fromDecimal(int decimal, int base) {
if (base < 2 || base > 16) {
throw new IllegalArgumentException("Base must be between 2 and 16");
}
StringBuilder number = new StringBuilder();
// 当十进制数大于0时持续转换
while (decimal > 0) {
int remainder = decimal % base;
char digit;
// 处理0-9
if (remainder < 10) {
digit = (char) ('0' + remainder);
}
// 处理10-15A-F
else {
digit = (char) ('A' + (remainder - 10));
}
number.insert(0, digit); // 在字符串的开头插入新的字符
decimal /= base; // 更新十进制数,去掉已转换的部分
}
// 如果转换后的字符串为空即输入的十进制数为0则返回"0"
return number.length() == 0 ? "0" : number.toString();
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 输入原始进制数和目标进制
System.out.print("输入原始数字的基数2-16: ");
int originalBase = scanner.nextInt();
System.out.print("输入原始数字输入要转换的基数2-16: ");
String originalNumber = scanner.next();
System.out.print("输入要转换的基数2-16: ");
int targetBase = scanner.nextInt();
// 转换并输出结果
int decimal = toDecimal(originalNumber, originalBase);
String convertedNumber = fromDecimal(decimal, targetBase);
System.out.println("转换后的号码是: " + convertedNumber);
scanner.close();
}
}

@ -0,0 +1,3 @@
# Default ignored files
/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="1.8 (2)" 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/computer1.iml" filepath="$PROJECT_DIR$/.idea/computer1.iml" />
</modules>
</component>
</project>

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="" vcs="Git" />
</component>
</project>
Loading…
Cancel
Save