用C++语言把字符串'123456'表示的八进制数转换成十进制
时间: 2023-03-28 19:04:46 浏览: 118
可以使用C语言中的 strtol 函数将字符串'123456'表示的八进制数转换成十进制数。具体代码如下:
```
#include <stdio.h>
#include <stdlib.h>
int main() {
char *str = "123456";
char *endptr;
long int num = strtol(str, &endptr, 8);
printf("%ld\n", num);
return ;
}
```
输出结果为:42798。
相关问题
cpp语言将八进制数字字符串转为十进制数字字符串代码
以下是将八进制数字字符串转换为十进制数字字符串的C++代码:
```cpp
#include <iostream>
#include <cstring>
using namespace std;
int main() {
char octal[20];
cout << "Enter an octal number: ";
cin >> octal;
int len = strlen(octal);
int dec = 0;
int base = 1;
for (int i = len - 1; i >= 0; i--) {
int digit = octal[i] - '0';
dec += digit * base;
base *= 8;
}
cout << "Decimal equivalent: " << dec << endl;
return 0;
}
```
这个程序首先要求用户输入一个八进制的数字字符串,然后将其转换为十进制数字字符串,并输出结果。在程序中,我们首先计算出八进制数字字符串的长度,然后使用循环从右到左依次处理每个数字,并使用base变量来跟踪每个数字所代表的权重。最终,我们将所有数字的值相加,得到了十进制数字的值。
cpp语言将长度为50的八进制数字字符串转为十进制数字字符串代码
以下是将长度为50的八进制数字字符串转为十进制数字字符串的 C++ 代码:
```c++
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
int main()
{
string octalNumStr = "12345671234567123456712345671234567123456712345671";
string decimalNumStr = "";
int len = octalNumStr.length();
int power = len - 1;
int decimalNum = 0;
for (int i = 0; i < len; i++)
{
decimalNum += (octalNumStr[i] - '0') * pow(8, power);
power--;
}
while (decimalNum != 0)
{
decimalNumStr = to_string(decimalNum % 10) + decimalNumStr;
decimalNum /= 10;
}
cout << "Octal number: " << octalNumStr << endl;
cout << "Decimal number: " << decimalNumStr << endl;
return 0;
}
```
在这个例子中,我们将八进制数字字符串存储在 `octalNumStr` 中,然后将其转换为一个十进制整数 `decimalNum`。接下来,我们使用一个循环将 `decimalNum` 转换为一个十进制数字字符串 `decimalNumStr`,并使用 `cout` 输出结果。