我正在尝试将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),但我不确定如何在我的代码中实现这个解决方案。有关如何实现这一目标的任何想法?
答案 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字节减法是如何工作的。