我编写了一个名为HugeInteger的类,它可以使用"无限"大小的数字进行算术运算(加,子,乘).它将数字中的每位数字视为独立数字(例如1234 = 1,2,3和4).我将这些数字存储在一个向量中(vector<short>).现在,因为每个数字只能取0到9之间的值,所以我真的不需要将它们存储为2字节数字.有没有办法(不使用char)将数字存储为1字节无符号整数?谢谢!
更新:
vector<unsigned char> v;
v.push_back(1);
v.push_back(2);
for (size_t i = 0; i < v.size(); i++)
cout << v[i];
Run Code Online (Sandbox Code Playgroud)
这会产生不需要的输出.我应该使用哪种数据类型来迭代向量?
Oli*_*rth 25
是的,使用unsigned char.
如果<stdint.h>可用,那么您也可以使用uint8_t.
che*_*ner 10
不要让标准编译器类型char混淆你; 以下是完全合法的:
char number[5] = { 1, 4, 3, 6, 2}; // Representation of decimal 14,362
Run Code Online (Sandbox Code Playgroud)
并不是说这种char类型有什么特别的东西会迫使你把它们想象成角色; 相反,它只是1个字节的方便大小,这使得它们适合保存库例程的值,例如printf使用它们来保存它将在合适的编码下解释为字符的1字节值.