用c ++将八进制数转换为实数

时间:2015-03-22 12:09:24

标签: c++

我希望在c ++中使用010 + 10 = 20。我知道010是一个八进制数,它等于8,但无论如何都要显示输入010 + 10 = 20(无需摆脱10前面的0。)

我需要将0放在10的前面,必须有一种方法可以将它显示为实数。

1 个答案:

答案 0 :(得分:2)

为什么需要将0放在10

前面

您正在写下数值,而不是需要转换的字符串。如果你想记下值10(基数为10),只需在基数10(八进制)中键入8,就可以在十进制数中做默认值。通过键入012

,在基本16(十六进制)中键入0xA

如果您需要将字符串转换为整数,那么(使用c++11),您可以执行以下操作:

int myval = std::stoi("010");

将截断任何前导0,结果为myval = 10


std::stoi的默认基数为10,但您可以使用第三个参数指定不同的基数。

int myval = std::stoi("010", 0, 8); // Base 8, myval = 8 now.
int myval = std::stoi("010", 0, 16); // Base 16, myval = 16 now.