Correction Fonction Conversion
Fermé
cervo_solo
Messages postés
71
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
19 juin 2013
-
20 janv. 2013 à 10:27
cervo_solo Messages postés 71 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 19 juin 2013 - 29 mars 2013 à 13:41
cervo_solo Messages postés 71 Date d'inscription vendredi 2 mars 2007 Statut Membre Dernière intervention 19 juin 2013 - 29 mars 2013 à 13:41
A voir également:
- Correction Fonction Conversion
- Fonction si et - Guide
- Correction orthographe - Guide
- Telecharger clavier français avec correction - Télécharger - Divers Utilitaires
- Fonction moyenne excel - Guide
- Monnaie conversion - Télécharger - Banque & Budget
2 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
20 janv. 2013 à 15:47
20 janv. 2013 à 15:47
Pourquoi tu prend des caractères codés sur 7 bits ? En Java les caractères sont Unicode donc leur taille n'est pas fixe puisqu'elle est de 8 ou 16 bits, mais pas 7 !
Plutôt que de faire ton découpage en substring, int, char, qui est évidemment faux et pour lesquels tu multiplies inutilement les cas particuliers, regarde la méthode toCharArray() qui te renvoie le tableau de caractères que compose la String, ou peut-être même mieux, la méthode getBytes() qui te renvoie le tableau d'octets que tu n'as alors plus qu'à afficher.
Voici par exemple comment on pourrais faire en s'aidant des BigInteger :
Plutôt que de faire ton découpage en substring, int, char, qui est évidemment faux et pour lesquels tu multiplies inutilement les cas particuliers, regarde la méthode toCharArray() qui te renvoie le tableau de caractères que compose la String, ou peut-être même mieux, la méthode getBytes() qui te renvoie le tableau d'octets que tu n'as alors plus qu'à afficher.
Voici par exemple comment on pourrais faire en s'aidant des BigInteger :
/** * Convertit une chaîne de caractères en binaire. * Attention : les '0' à gauche ne sont pas représentés, si la chaîne de caractères commence par un ou plusieurs caractères '\0' ceux-ci ne seront pas conservés. * @param text une chaîne de caractères * @return sa représentation en binaire */ public static String textToBin(String text) { return new BigInteger(text.getBytes()).toString(2); } /** * Convertit du binaire en chaîne de caractères. * Attention : les '0' à gauche ne sont pas utilisés, s'ils doivent représenter un ou plusieurs caractères '\0' ceux-ci ne seront pas restitués. * @param bin une représentation binaire d'une chaîne de caractères * @return la chaîne de caractères de correspondante */ public static String binToText(String bin) { return new String(new BigInteger(bin,2).toByteArray()); } public static void main(String[] args) { String s1 = "test"; String s2 = textToBin(s1); System.out.println(s2); String s3 = "0110111101101011"; String s4 = binToText(s3); System.out.println(s4); String s5 = "000000000000000000110101101101111"; String s6 = binToText(s5); System.out.println(s6); }
cervo_solo
Messages postés
71
Date d'inscription
vendredi 2 mars 2007
Statut
Membre
Dernière intervention
19 juin 2013
1
29 mars 2013 à 13:41
29 mars 2013 à 13:41
merci beaucoup !