WUSTOJ 1237: 将八进制的字符串转换成等价的十进制字符串(Java)
时间: 2023-06-17 14:04:12 浏览: 46
以下是Java语言的代码实现:
```java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String octalStr = sc.nextLine();
int decimal = Integer.parseInt(octalStr, 8);
String decimalStr = Integer.toString(decimal);
System.out.println(decimalStr);
}
}
```
首先,使用Scanner类从标准输入中读取一个八进制字符串。
然后,使用Integer类的parseInt方法将八进制字符串转换为十进制整数。
接着,使用Integer类的toString方法将十进制整数转换为字符串。
最后,使用System.out.println方法将转换后的十进制字符串输出到标准输出。
相关问题
c语言编码:十六进制字符串转换成十进制非负整数
可以使用C语言的标准库函数`strtol`将十六进制字符串转换成十进制非负整数。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char hex_str[] = "3F8A"; // 十六进制字符串
char *endptr; // 指向转换后第一个无效字符的指针
unsigned long num = strtol(hex_str, &endptr, 16); // 将十六进制字符串转换成十进制非负整数
if (*endptr != '\0') { // 如果转换后还有无效字符,则说明转换失败
printf("转换失败\n");
} else {
printf("转换成功,结果为:%lu\n", num);
}
return 0;
}
```
输出结果为:
```
转换成功,结果为:16266
```
其中,`strtol`函数的第一个参数为待转换的字符串,第二个参数为指向转换后第一个无效字符的指针,第三个参数为进制数。在本例中,进制数为16,表示将字符串按照十六进制数的规则进行转换。如果转换成功,函数返回转换后的十进制非负整数。如果转换失败,则函数返回0。
用c语言编写程序:将十进制整数num转换成二进制字符串输出
好的,以下是用 C 语言编写的程序,可以将十进制整数转换为二进制字符串并输出:
```c
#include <stdio.h>
#include <stdlib.h>
int main()
{
int num, i, j;
char binary[32]; // 最多存储32位二进制数
printf("请输入一个十进制整数:");
scanf("%d", &num);
if(num == 0) // 特殊情况,直接输出0即可
{
printf("0");
return 0;
}
// 将十进制数转换为二进制数
for(i = 0; num > 0; i++)
{
binary[i] = num % 2 + '0'; // 将余数转换为字符
num = num / 2;
}
// 将二进制数字符串反转
for(j = 0; j < i / 2; j++)
{
char temp = binary[j];
binary[j] = binary[i - j - 1];
binary[i - j - 1] = temp;
}
printf("转换后的二进制数为:%s", binary);
return 0;
}
```
输入一个十进制整数,程序会将其转换为二进制字符串并输出。如果输入的整数是0,直接输出0即可。如果需要转换的二进制数超过了32位,需要修改程序中的 `binary` 数组大小。