Des décimaux....
Changer la base d'un nombre ne change pas sa valeur, alors que l'API propose de déclarer les nombres en base 10 car c'est celle qui est le plus utilisée par les humains, pour ton processeur il s'agit de nombre en base 2...
L'important est que Integer stoque une valeur et que savoir comment cette valeur est stoquée n'est pas le probleme. Principe de la POO : l'objet fait ce qu'il a à faire et toi tu dois juste regarder l'API qu'il te propose.
En base 10
déclaration :
Integer myInteger = new Integer(6);
ou
Integer myInteger = new Integer("6");
récupération :
1 2
| int myInt = myInteger.intValue();
String myString = myInteger.toString(); |
***************************************************************
Dans n'importe quelle base :
Integer myInteger = Integer.valueOf("0101",2); // pour une base 2 et une valeur de (0101)
récupération :
1 2
| int myInt = myInteger.intValue(); // cela ne change pas
String myString = Integer.toString(myInteger.intValue(), 2); //pour une base 2 |
Remarque : Integer.toString(int i, radix i) est la fonction permettant d'avoir une representation dans de nombreuses bases de ton int (jusqu'en base 36) , pour les fainéants l'API propose également pour les bases les plus utilisées (2,8,16) :
Integer.toBinaryString(int i)
Integer.toHexString(int i)
Integer.toOctalString(int i)
Il faut avouer que c'est plus lisible, tout de meme.
Le code présenté est valide pour tous les sdk seulement à partir du 5, l'autowraping devrait permettre de simplifier les choses (l'écriture) mais le principe reste le meme.
Apres si tu veux avoir des calculs precis (si tu veux faire du binaire entre autre), la classe BigInteger est plus adaptée mais le principe reste encore une fois le même. Bien que l'API soit plus simple :
constructeur : BigInteger(String val, int radix)
récuperer : myBigInteger.toString(int radix)
De plus cette classe propose des methodes pour manipuler les bits.
Par contre la manipulation d'octets ou de mots je ne pense pas que quelque chose est était prévue "explicitement" (Manipuler des octets et des motsrevients à munipuler plusieurs bites en meme temps.)
Partager