how i can convert binary 128 bit to decimal??

26 visualizaciones (últimos 30 días)
nail
nail el 30 de Mayo de 2014
Comentada: Radwa el 14 de En. de 2015
i work in data encryption, but i don't know how to convert a 128 binary to decimal. i try bin2dec and its not work and the error massage tell me : "Binary string must be 52 bits or less". please help
a=dec2bin(7,128)
b=bin2dec(a)
Error using bin2dec (line 36)
Binary string must be 52 bits or less.
  1 comentario
nail
nail el 1 de Jun. de 2014
Editada: nail el 1 de Jun. de 2014
Thank you all
nothing works
but i change my code variables to make the output range (8-52) if i know how to make it bigger (64,128,.....) i will change just the conditions :)
you are help me so much
but i want to get 128 bits of it as binary of string data example
1= 00110001
2= 00110010
a= 01100001
b= 01100010
A= 01000001

Iniciar sesión para comentar.

Respuesta aceptada

James Tursa
James Tursa el 31 de Mayo de 2014
Editada: James Tursa el 31 de Mayo de 2014
Double precision numbers only have a 52-bit mantissa (+1 hidden leading bit), hence the error. A uint64 has 64 bits, and that is the max you can have for numeric types. To deal with this many bits in a number you will need to use something else. E.g either the Symbolic Toolbox, or use the Variable Precision Integer FEX submission by John D'Errico:
  2 comentarios
nail
nail el 31 de Mayo de 2014
Editada: nail el 31 de Mayo de 2014
Thank you James Tursa but i want to get something help me in my code. are you want to say its impossible ?? thank you again
James Tursa
James Tursa el 31 de Mayo de 2014
I don't understand your comment. If you want a single variable to hold the decimal value of a 128-bit binary string, you can't do it with numeric types in MATLAB because there aren't enough bits available. You could use one of the methods I proposed, or perhaps break up your problem into 64-bit chunks and use uint64 types.

Iniciar sesión para comentar.

Más respuestas (1)

Hind Thanoon
Hind Thanoon el 31 de Mayo de 2014
Hello nail.. try the following code:
a=dec2bin(7,128); b=bin2dec(a(1:24))*2^104+bin2dec(a(25:76))*2^52+bin2dec(a(77:128))*2^0;
this will help you to solve your problem you will convert each 52 bit separately and then accumulate the result like the following example: a=1001=9, if I need to convert each 2bit then I will say bin2dec(10)*2^2+bin2dec(01)*2^0 {bin2dec(a(1:2))*2^2+bin2dec(a(3:4))*2^0} the result will be: 2*2^2+1*2^0=9
  2 comentarios
James Tursa
James Tursa el 31 de Mayo de 2014
There are not enough bits in a double variable to hold the exact value of a 128-bit binary string, so your method of breaking things up and accumulating the result will not work in general.
Radwa
Radwa el 14 de En. de 2015
I work in encryption also, how u solve ur problem?

Iniciar sesión para comentar.

Categorías

Más información sobre Data Type Conversion en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by