当前位置:   article > 正文

十六进制转十进制(Java)_java 16进制转10进制

java 16进制转10进制


目录

一、什么是十六进制和十进制

1.十进制

2.十六进制

二、转换方法(思路)

三、代码编写


一、什么是十六进制和十进制

1.十进制

一个以10为基数的数系,现实生活中接触到的数字就是十进制,锋十进一,十进位位值制记数法包括十进位和位值制两条原则,"十进"即满十进一;"位值"则是同一个数位在不同的位置上所表示的数值也就不同,如三位数"111",右边的"1"在个位上表示1个一,中间的"1"在十位上就表示1个十,左边的"1"在百位上则表示1个百。

2.十六进制

有16个基数:0 ~ 9,A(10),B(11),C(12),D(13),E(14),F(15) ,逢十六进一.从0数到1、2、3…A、B…F,数到F时(也就是第16个数时)进一是10,跟着数11、12、13…18、19、1A、1B…这样数下去。

二、转换方法(思路)

从最低位(右边)开始,将每个位上的数提取出来,乘以 16 的(位数-1)次方,然后求和。

(十进制默认不用写10#)

三、代码编写

  • 先将A(10)、B(11)、C(12)、D(13)、E(14)、F(15)放入HashMap中。
  • 循环判断数字部分和字母部分,然后对字母部分判断找出hashmap中对应的value值,最终进行类加得出结果。
  1. import java.util.HashMap;
  2. import java.util.Scanner;
  3. import java.util.Set;
  4. /**
  5. * 十六进制转十进制
  6. * 0、1、2、3、4、5、6、7、8、9、A(10)、B(11)、C(12)、D(13)、E(14)、F(15)
  7. */
  8. public class HexToDec {
  9. public static void main(String[] args) {
  10. int dec = 0;
  11. Scanner sc = new Scanner(System.in);
  12. String hex = sc.nextLine();
  13. //先将A(10)、B(11)、C(12)、D(13)、E(14)、F(15)放入HashMap中
  14. String[] overTen = {"A", "B", "C", "D", "E", "F"};
  15. HashMap<String, Integer> hashMap = new HashMap<>();
  16. for (int i = 0; i < 6; i++) {
  17. hashMap.put(overTen[i], i + 10);
  18. }
  19. //取出hashMap中键的集合
  20. Set<String> keySet = hashMap.keySet();
  21. //循环判断
  22. for (int i = 0; i < hex.length(); i++) {
  23. //判断数字部分
  24. if (hex.charAt(i) >= 48 && hex.charAt(i) <= 57) {
  25. dec += (hex.charAt(i) - 48) * Math.pow(16, hex.length() - 1 - i);
  26. } else {
  27. //判断字母部分
  28. for (String s : keySet) { //对键的集合进行遍历
  29. if ((hex.charAt(i) + "").equals(s)) { //判断找出相匹配的键
  30. Integer value = hashMap.get(s); //根据键找出相对应的值
  31. dec += value * Math.pow(16, hex.length() - 1 - i); //类加求和
  32. }
  33. }
  34. }
  35. }
  36. System.out.println(hex + "转换为十进制的结果为:" + dec);
  37. }
  38. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/226757
推荐阅读
相关标签
  

闽ICP备14008679号