Java: Comment convertir une Chaîne de valeurs Binaires à un Flotteur et vice-versa?
Comment puis-je convertir la valeur flottante de 12345.12346 f pour une Chaîne de valeurs binaires, c'est à dire "0011010101010101", et vice-versa?
voulez-vous la représentation de ce flotteur dans la mémoire ? Parce que le flotteur n'est pas vraiment une représentation binaire, int bien sûr, mais flottent pas.
Voulez-vous simplement tout réversible de conversion, ou un sensible (ou peut-être lisible)?
Voulez-vous simplement tout réversible de conversion, ou un sensible (ou peut-être lisible)?
OriginalL'auteur okami | 2011-03-01
Vous devez vous connecter pour publier un commentaire.
Je ne suis pas sûr que c'est ce que vous voulez, mais voici une solution pour avoir la représentation binaire de la norme IEEE 754 virgule flottante "double format" peu de mise en page pour un flotteur (il s'agit essentiellement de la mémoire de la représentation d'un flotteur) :
Pour effectuer la procédure inverse :
merci pour la correction 🙂 de mon premier essai avec de long au lieu de int
Le résultat serait-il signé ou non signé? La recherche d'signé.
Après des heures de recherche et d'essayer, j'ai trouvé votre réponse. Il fonctionne comme prévu. Merci beaucoup!
J'ai presque le même problème que le questionneur. J'ai de la communication simulateur qui genertaes Binaire qui est "pris" par un processus d'écoute. Je commence avec "float flt = -45732.9287 f", et je peux voir que le Binaire reçu est correct, mais la conversion de retour à Flotteur à l'aide de cette solution de lance "de java.lang.NumberFormatException: Pour la saisie de texte: "11000111001100101010010011101110" de "de java.lang.Entier.parseInt(Integer.java:583)"." Le Binaire généré est clairement un correctement structuré IEEE-754 format binary32, à venir à partir d'un appel à "int revint = Integer.parseInt(str, 2);"
OriginalL'auteur krtek
Échantillon de travail:
De sortie:
OriginalL'auteur OscarRyz
Pour la signature de Flotteurs, de l'utilisation à Long ou BigInteger pour analyser la chaîne. Coulée par int causes les chiffres, d'abord de 32 bits être intepreted signer des chiffres.
procédure :
procédure inverse :
OriginalL'auteur snow
Vous pouvez obtenir la représentation binaire de Java Float valeur à l'aide de
Une fois que vous aurez fait cela, vous pouvez tester chaque bit du résultat de l'int à son tour, en commençant par le plus élevé, et de savoir si c'ensemble, l'écriture d'un " 1 "si elle est définie et un" 0 " si non.
OriginalL'auteur DJClayworth