从Base 95转换后,将数字附加到Int的结尾

时间:2016-02-15 19:45:09

标签: c++ visual-c++

我正在尝试将sting从base 95转换为int。对于字符串中的每个字符,我减去32以将其从基数95转换为int(更多详细信息和我用于参考的转换表可以找到here)。转换角色后。我想将它附加到int变量的末尾。这是我到目前为止的代码:

string name = "!#N$";
int name2;

for(int i = 0; i < name.length(); i++)
{
    name2 = name.at(i) - 32;
}

我想将name2的值附加到前一个值name2的末尾,所以在循环结束时我有一个int。但是,我不确定如何实现这一目标。我正在考虑使用+=运算符,但是这只会添加值。同样我理解,如果你* 10然后添加一个数字,那么附加数字(like this),但我不确定如何在我的代码中实现这个解决方案。有关如何实现这一目标的任何想法?

1 个答案:

答案 0 :(得分:0)

name2 = 0;

for (int i = 0; i < 4; ++i) {
    int digit = (unsigned char)(name.at(i) - 32); // avoid sign extension
    name2 |= digit << (3 - i) * 8;
}

另一方面,所有这些95基础业务的内容是什么?我真的不明白它是如何有用的。它不像是节省了任何存储空间,而且基本上无法读取。我也不知道转换功能。我没有看到32字节减法是如何工作的。