Truncating to a given bit length

14 visualizaciones (últimos 30 días)
Buddhini Angelika
Buddhini Angelika el 30 de Dic. de 2015
Comentada: Walter Roberson el 6 de En. de 2016
I have a gui which gives a result as follows. Result=a253ff09c5a8678e1fd1962b2c329245e139e45f9cc6ced4e5d7ad42c4108fc0. Is there a way to truncate the above result to a given bit length? (Say bit lengths of 19,13,10 etc.)
Please help me with the above question.
Thanks a lot in advance.

Respuesta aceptada

Walter Roberson
Walter Roberson el 30 de Dic. de 2015
Assuming Result is a string and assuming that the values represent hex,
NeededBitLength = 19; %for example
bitvec = reshape(dec2bin(sscanf(Result,'%1x'),4).',1,[]);
bitvec = bitvec(end-NeededBitLength+1 : end);
truncatedResult = bin2dec(bitvec);
Caution: if you need more than 53 bits this version will not work.
  4 comentarios
Buddhini Angelika
Buddhini Angelika el 6 de En. de 2016
What are symbolic numbers? And how to do it if I go for symbolic numbers?
My program generate results like above and also various integers (n). Then I need to truncate the result as above to obtain a single integer value.
Actually the Result obtained above is a result when I apply the SHA-256 to a given message word.
Please help me to solve this problem. If there is a better hash function to be used please mention it too.
Thanks a lot in advance
Walter Roberson
Walter Roberson el 6 de En. de 2016
I am certain that SHA-256 does not expect you to work with word lengths of more than 64 bits. Typical implementations work with arrays of 32 bit words.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Debugging and Analysis en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by