example - long java max value
¿Cuál es el tamaño de char[]? (3)
Estoy haciendo un algoritmo hash, el bloque de mensajes es de 512 bits. En C/C++
puedo almacenar en char[64]
, pero Java
char
toma 2 bytes.
Pregunta: ¿512 bits de información son char[32]
o char[64]
?
¿Por qué usar un char[]
?
Un valor hash consiste en byte
, por lo que la opción lógica sería usar un byte[64]
.
El tipo de datos char
está destinado a ser utilizado como un personaje y no como un número.
Char es de 16 bits en Java. Entonces char [32] debería ser suficiente para 512bits. Creo que usar byte [64] es mejor, porque todos saben que un byte es de 8 bits y char [32] hace que el código sea más difícil de leer. Además, no almacena caracteres, sino bits.
De la documentación :
char : el tipo de datos char es un único carácter Unicode de 16 bits. Tiene un valor mínimo de ''/ u0000'' (o 0) y un valor máximo de ''/ uffff'' (o 65,535 inclusive).
Entonces, para almacenar 512 bits, debe tener una matriz de tamaño 32.