He programado una clase llamada HugeInteger que puede hacer aritmética (agregar, sub, multiplicar) con números de tamaño "infinito". Trata cada bit del dígito en el número como un dígito independiente (por ejemplo, 1234 = 1, 2, 3 y 4). Guardo estos números en un vector (vector<short>)
. Ahora, debido a que cada dígito solo puede tomar los valores de 0 a 9, realmente no necesito almacenarlos como un dígito de 2 bytes. ¿Hay alguna forma (sin usar char) para almacenar los dígitos como un entero sin signo de 1 byte? ¡Gracias!entero de 1 byte sin signo C++
Actualización:
vector<unsigned char> v;
v.push_back(1);
v.push_back(2);
for (size_t i = 0; i < v.size(); i++)
cout << v[i];
Esto produce una salida no deseada. ¿Qué tipo de datos debo usar para iterar a través del vector?
¿Por qué sin usar 'char'? – jwodder
El encabezado proporciona un tipo llamado "uint8_t" - si su entorno admite dicho tipo. Tenga en cuenta que "uint8_t" puede ser un typedef para "char sin signo". Así que la sobrecarga puede no funcionar como se espera en todos los casos. –
nosid
'unsigned char' es el entero" sin bytes de un byte "de C++ por definición. ¿Por qué no quieres una solución a tu problema? –