将数字附加到int而不转换为字符串?

nmu*_*ntz 8 c++ variables append

有没有一种安全的方法可以在整数的末尾添加一个数字而不将其转换为字符串而不使用字符串流?

我试图谷歌答案为此,大多数解决方案建议将其转换为字符串并使用字符串流但我想保持它作为整数,以确保数据完整性,并避免转换类型.
我还读了一个解决方案,建议将int乘以10,然后加上数字,但这可能会导致整数溢出.
这样做是否安全或有更好的方法吗?如果我这样做乘以10并添加数字解决方案,我应该采取什么预防措施?

use*_*116 25

最好的选择是乘以10并增加值.你可以像这样做一个天真的检查:

assert(digit >= 0 && digit < 10);
newValue = (oldValue * 10) + digit;
if (newValue < oldValue)
{
    // overflow
}
Run Code Online (Sandbox Code Playgroud)