how i can convert binary 128 bit to decimal??

28 vues (au cours des 30 derniers jours)
nail
nail le 30 Mai 2014
Commenté : Radwa le 14 Jan 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 commentaire
nail
nail le 1 Juin 2014
Modifié(e) : nail le 1 Juin 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

Connectez-vous pour commenter.

Réponse acceptée

James Tursa
James Tursa le 31 Mai 2014
Modifié(e) : James Tursa le 31 Mai 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 commentaires
nail
nail le 31 Mai 2014
Modifié(e) : nail le 31 Mai 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 le 31 Mai 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.

Connectez-vous pour commenter.

Plus de réponses (1)

Hind Thanoon
Hind Thanoon le 31 Mai 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 commentaires
James Tursa
James Tursa le 31 Mai 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 le 14 Jan 2015
I work in encryption also, how u solve ur problem?

Connectez-vous pour commenter.

Catégories

En savoir plus sur Data Type Conversion dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by