Advertisement
Voluspo

Convertion decimal/binaire

Jan 22nd, 2017
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.73 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.regex.Pattern;
  3.  
  4. /**
  5. *
  6. * @author Jérémy
  7. */
  8. public class convert {
  9. private ArrayList<Integer> resultat;
  10.  
  11. public convert() {
  12. this.resultat = new ArrayList<Integer>();
  13. }
  14.  
  15. public ArrayList<Integer> getResultat() {
  16. return resultat;
  17. }
  18.  
  19. public void setResultat(ArrayList<Integer> resultat) {
  20. this.resultat = resultat;
  21. }
  22. /**
  23. * Méthode qui converti un nombre decimal en nombre binaire
  24. * @param arg l'entier à convertir
  25. * @return String, représentaion en caractère du résultat
  26. */
  27. public String DecimalToBinaire(int arg){
  28. try{
  29. int leng;
  30. String res="";
  31. this.resultat.clear();
  32. while(arg>1){
  33. this.resultat.add(arg%2);
  34. arg=(arg-(arg%2))/2;
  35. }
  36. this.resultat.add(arg);
  37. leng=this.resultat.size();
  38. for(int i=leng;i!=0;i--){
  39. int a=this.resultat.get(i-1);
  40. res=res+Integer.toString(a);
  41. }
  42. return res;
  43. }
  44. catch(NumberFormatException ex){
  45. return "ce n'est pas un chiffre decimal";
  46. }
  47. }
  48.  
  49. /**
  50. * Méthode qui converti un nombre decimal en nombre ocal
  51. * @param arg l'entier à convertir
  52. * @return String, représentaion en caractère du résultat
  53. */
  54. public String DecimalToOctal(int arg){
  55. try{
  56. int leng;
  57. String res="";
  58. this.resultat.clear();
  59. while(arg>7){
  60. this.resultat.add(arg%8);
  61. arg=(arg-(arg%8))/8;
  62. }
  63. this.resultat.add(arg);
  64. leng=this.resultat.size();
  65. for(int i=leng;i!=0;i--){
  66. int a=this.resultat.get(i-1);
  67. res=res+Integer.toString(a);
  68. }
  69. return res;
  70. }
  71. catch(NumberFormatException ex){
  72. return "ce n'est pas un chiffre decimal";
  73. }
  74. }
  75.  
  76. /**
  77. * Méthode qui converti un nombre decimal en nombre hexadecimal
  78. * @param arg l'entier à convertir
  79. * @return String, représentaion en caractère du résultat
  80. */
  81. public String DecimalToHexadecimal(int arg){
  82. try{
  83. int leng;
  84.  
  85. String res="";
  86. this.resultat.clear();
  87. while(arg>15){
  88. this.resultat.add(arg%16);
  89. arg=(arg-(arg%16))/16;
  90. }
  91. this.resultat.add(arg);
  92. leng=this.resultat.size();
  93. for(int i=leng;i!=0;i--){
  94. int a=this.resultat.get(i-1);
  95. if(a==10)res=res+"A";
  96. else if(a==11)res=res+"B";
  97. else if(a==12)res=res+"C";
  98. else if(a==13)res=res+"D";
  99. else if(a==14)res=res+"E";
  100. else if(a==15)res=res+"F";
  101. else res=res+Integer.toString(a);
  102. }
  103. return res;
  104. }
  105. catch(NumberFormatException ex){
  106. return "ce n'est pas un chiffre decimal";
  107. }
  108. }
  109.  
  110. public int power(int a,int p){
  111. int res=1;
  112. for(int i=0;i<p;i++)res*=a;
  113. return res;
  114. }
  115.  
  116. /**
  117. * Méthode qui converti un nombre binaire en nombre decimal
  118. * @param arg le chiffre binaire à convertir
  119. * @return int, résultat en décimal
  120. */
  121. public int BinaireToDecimal(String arg){
  122. if (Pattern.matches("[0-1]*",arg)) {
  123. int leng=arg.length();
  124. int res=0;
  125. for(int i=leng;i!=0;i--){
  126. int a=Integer.parseInt(Character.toString(arg.charAt(i-1)));
  127. res+=(a*power(2,leng-i));
  128. }
  129. return res;
  130. }
  131. else {
  132. System.out.println("ce n'est pas un chiffre octal");
  133. return -1;
  134. }
  135.  
  136. }
  137.  
  138. /**
  139. * Méthode qui converti un nombre octal en nombre decimal
  140. * @param arg le chiffre octal à convertir
  141. * @return int, résultat en décimal
  142. */
  143. public int OctalToDecimal(String arg){
  144. if (Pattern.matches("[0-7]*",arg)) {
  145. int leng=arg.length();
  146. int res=0;
  147. for(int i=leng;i!=0;i--){
  148. int a=Integer.parseInt(Character.toString(arg.charAt(i-1)));
  149. res+=(a*power(8,leng-i));
  150. }
  151. return res;
  152. }
  153. else {
  154. System.out.println("ce n'est pas un chiffre octal");
  155. return -1;
  156. }
  157. }
  158.  
  159. /**
  160. * Méthode qui converti un nombre hexadecimal en nombre decimal
  161. * @param arg le chiffre hexadecimal à convertir
  162. * @return int, résultat en décimal
  163. */
  164. public int HexadecimalToDecimal(String arg){
  165. if (Pattern.matches("([0-9]|[a-f]|[A-F])*",arg)) {
  166. int leng=arg.length();
  167. int res=0;
  168. int a;
  169. for(int i=leng;i!=0;i--){
  170. if(arg.charAt(i-1)=='A' || arg.charAt(i-1)=='a')a=10;
  171. else if(arg.charAt(i-1)=='B' || arg.charAt(i-1)=='b')a=11;
  172. else if(arg.charAt(i-1)=='C' || arg.charAt(i-1)=='c')a=12;
  173. else if(arg.charAt(i-1)=='D' || arg.charAt(i-1)=='d')a=13;
  174. else if(arg.charAt(i-1)=='E' || arg.charAt(i-1)=='e')a=14;
  175. else if(arg.charAt(i-1)=='F' || arg.charAt(i-1)=='f')a=15;
  176. else a=Integer.parseInt(Character.toString(arg.charAt(i-1)));
  177. res+=(a*power(16,leng-i));
  178. }
  179. return res;
  180. }
  181. else {
  182. System.out.println("ce n'est pas un chiffre hexadecimal");
  183. return -1;
  184. }
  185.  
  186. }
  187.  
  188. public String HexadecimalToBinaire(String arg){
  189. if (Pattern.matches("([0-9]|[a-f]|[A-F])*",arg)) {
  190. return this.DecimalToBinaire(HexadecimalToDecimal(arg));
  191. }
  192. else {
  193. return "ce n'est pas un nombre hexadecimal";
  194. }
  195. }
  196.  
  197. public String HexadecimalToOctal(String arg){
  198. if (Pattern.matches("([0-9]|[a-f]|[A-F])*",arg)) {
  199. return this.DecimalToOctal(HexadecimalToDecimal(arg));
  200. }
  201. else {
  202. return "ce n'est pas un nombre hexadecimal";
  203. }
  204. }
  205.  
  206. public String BinaireToOctal(String arg){
  207. if (Pattern.matches("[0-1]*",arg)) {
  208. return this.DecimalToOctal(BinaireToDecimal(arg));
  209. }
  210. else {
  211. return "ce n'est pas un nombre binaire";
  212. }
  213. }
  214.  
  215. public String BinaireToHexadecimal(String arg){
  216. if (Pattern.matches("[0-1]*",arg)) {
  217. return this.DecimalToHexadecimal(BinaireToDecimal(arg));
  218. }
  219. else {
  220. return "ce n'est pas un nombre binaire";
  221. }
  222. }
  223.  
  224. public String OctalToHexadecimal(String arg){
  225. if (Pattern.matches("[0-7]*",arg)) {
  226. return this.DecimalToHexadecimal(OctalToDecimal(arg));
  227. }
  228. else {
  229. return "ce n'est pas un nombre octal";
  230. }
  231. }
  232.  
  233. public String OctalToBinaire(String arg){
  234. if (Pattern.matches("[0-7]*",arg)) {
  235. return this.DecimalToBinaire(OctalToDecimal(arg));
  236. }
  237. else {
  238. return "ce n'est pas un nombre octal";
  239. }
  240. }
  241.  
  242. public static void main(String args[]){
  243. convert con=new convert();
  244.  
  245. System.out.println("----------------- sans erreur ------------------");
  246.  
  247. System.out.println(con.DecimalToHexadecimal(46));
  248. System.out.println(con.DecimalToOctal(12));
  249. System.out.println(con.DecimalToBinaire(46));
  250.  
  251. System.out.println(con.BinaireToDecimal("100101100"));
  252. System.out.println(con.BinaireToOctal("10011100"));
  253. System.out.println(con.BinaireToHexadecimal("10011100"));
  254.  
  255. System.out.println(con.OctalToDecimal("123"));
  256. System.out.println(con.OctalToBinaire("55"));
  257. System.out.println(con.OctalToHexadecimal("77"));
  258.  
  259. System.out.println(con.HexadecimalToDecimal("a4"));
  260. System.out.println(con.HexadecimalToBinaire("e8"));
  261. System.out.println(con.HexadecimalToOctal("ff"));
  262.  
  263. System.out.println("\n\n\n----------------- avec erreur ------------------");
  264.  
  265. System.out.println(con.BinaireToDecimal("100171100"));
  266. System.out.println(con.BinaireToOctal("10011g100"));
  267. System.out.println(con.BinaireToHexadecimal("10065411100"));
  268.  
  269. System.out.println(con.OctalToDecimal("1283"));
  270. System.out.println(con.OctalToBinaire("595"));
  271. System.out.println(con.OctalToHexadecimal("7v7"));
  272.  
  273. System.out.println(con.HexadecimalToDecimal("aze"));
  274. System.out.println(con.HexadecimalToBinaire("kf"));
  275. System.out.println(con.HexadecimalToOctal("azeaze"));
  276.  
  277. System.out.println("----------------- FIN !!!!!!!!!! ------------------");
  278. }
  279. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement