A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 赵耿 中级黑马   /  2015-1-29 14:52  /  872 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. /*
  2. 学习后,我们知道利用查表法,十进制数无论转成二进制、八进制、还是十六进制数,
  3. 都是非常方便的,并且他们都有相似的代码,因此我们可以将这些代码进行提取,总结,
  4. 写出一个综合的功能:
  5. */
  6. class ArrayTest7
  7. {
  8. public static void main(String[] args)
  9. {
  10. toBa(60);
  11. System.out.println();
  12. toHex(60);
  13. System.out.println();
  14. toBin(60);
  15. }
  16. public static void toBa(int num)
  17. {
  18. trans(num,7,3);
  19. }
  20. public static void toHex(int num)
  21. {
  22. trans(num,15,4);
  23. }
  24. public static void toBin(int num)
  25. {
  26. trans(num,1,1);
  27. }
  28. public static void trans(int num, int base, int offset)
  29. {
  30. if(num==0)
  31. {
  32. System.out.println(0);
  33. return ;
  34. }

  35. char[] chs = {'0','1','2','3',
  36. '4','5','6','7',
  37. '8','9','A','B',
  38. 'C','D','E','F'};
  39. char[] arr = new char[32];
  40. int pos = arr.length;

  41. while(num!=0){
  42. int temp = num & base;
  43. arr[--pos] = chs[temp];
  44. num = num >>> offset;
  45. }
  46. for(int x = pos; x < arr.length; x++)
  47. {
  48. System.out.print(arr[x]);
  49. }
  50. }
  51. }
复制代码

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马