我希望在c ++中使用010 + 10 = 20。我知道010是一个八进制数,它等于8,但无论如何都要显示输入010 + 10 = 20(无需摆脱10前面的0。)
我需要将0放在10的前面,必须有一种方法可以将它显示为实数。
答案 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.