目录

  • 前言
  • 试题 基础练习 十六进制转十进制
  • 要点
  • 思路一:常规做法——进制转换 字符 循环
    • 本题代码
  • 思路二:简单做法,使用java自带的方法
    • 本题代码

前言

进制转化包括这篇我写了三篇了,这篇没讲的好多要点都在其他两篇讲到了大家有需要请点击下面链接跳转去学习

蓝桥杯试题 基础练习 BASIC-12 十六进制转八进制 JAVA——冲刺蓝桥杯第六天
蓝桥杯试题 基础练习 BASIC-10 十进制转十六进制 JAVA——冲刺蓝桥杯第五天

试题 基础练习 十六进制转十进制

资源限制
时间限制:1.0s 内存限制:512.0MB
问题描述
  从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。
  注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。
样例输入
FFFF
样例输出
65535

要点

  1. 输入数据的范围,输入数据范围决定我们使用哪种数据类型

    java八大数据类型
    看到这个8位,我就想起int型能表示的最大数2147483647对应的16进制为7FFFFFFF,正好8位,如果这道题输入为比7FFFFFFF大一点,比如8FFFFFFF,那我们转化过来的10进制数就不能是int型,而得是long
    而最后本题的测评数据也没有让我失望

    果然有一个测评数据的输入大于7FFFFFFF,来考察我们是否考虑了输入数据的范围,是否考虑了数据类型

思路一:常规做法——进制转换 字符 循环

  1. a.charAt(i)
    方法解释:.charAt(int index) (return)char
    输入参数为位置索引,输出为该位置的字符

    String a = "HelloWorld";
    for (int i = 0; i < a.length(); i++) {System.out.print(a.charAt(i) + " "); //输出H e l l o W o r l d
    }
    
  2. (long) Math.pow(16, a.length() - i - 1)
    sum = sum + tmp * (long) Math.pow(16, a.length() - i - 1);
    Math.pow(16, a.length() - i - 1)的返回值类型为double,如果不转化为整数型,会导致输出也是double,所以我们需要转化为整数型,整数型有两种intlong,因为数据范围我们只能选long

    System.out.println(5 + 2.0); //输出7.0为double 5为int,2.0为double
    
  3. tmp = a.charAt(i) - '0';
    char型与int的相互转化
    char转int
    char与int的相互转化,联想ASCII码,字符'0'对应的值为48,所以不能直接加减''

    char ch='9';
    int ch_int=ch-'0';//此时ch_int=9
    

    int转char

    int i = 9;
    char i_ch = (char) (i + '0'); // 此时i_ch='9'
    

本题代码

import java.util.Scanner;
public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String a = sc.next();sc.close();int tmp; // 一位16进制数转化后的10进制数long sum = 0; //这里只能为long型,最终输出的10进制可能特别大,大到超出int所能表示的最大数for (int i = 0; i < a.length(); i++) {switch (a.charAt(i)) {case 'A':tmp = 10; break;case 'B':tmp = 11; break;case 'C':tmp = 12; break;case 'D':tmp = 13; break;case 'E':tmp = 14; break;case 'F':tmp = 15; break;default: tmp = a.charAt(i) - '0';}sum = sum + tmp * (long) Math.pow(16, a.length() - i - 1);// 如果Math.pow(16,a.length()-i-1)转化为int会导致错误,// 16的15次方超出int型数据的范围:16的15次大于2147483647}System.out.println(sum);}
}

思路二:简单做法,使用java自带的方法

  1. Long.valueOf(a, 16)
    Long.valueOf(String s, int radix) (return)Long
    第一个参数为要读取的字符串,第二个是读取该字符串所要使用的进制,返回某字符串的某进制的值(Long型)

本题代码

import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String a = sc.next();// int能表示的最大数2147483647转化为16进制为7FFFFFFF,正好8位,// 如果这里的输入比7FFFFFFF大一点,那我们转化后的10进制数据就不能是int类型sc.close();System.out.println(Long.valueOf(a, 16));}
}

蓝桥杯试题 基础练习 BASIC-11 十六进制转十进制 JAVA——冲刺蓝桥杯第六天相关推荐

  1. 蓝桥杯试题 基础练习 十进制转十六进制

    蓝桥杯试题 基础练习 十进制转十六进制 C/C++ 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 十六进制数是在程序设计时经常要使用到的一种整数的表示方式.它有0,1,2,3,4, ...

  2. 蓝桥杯试题 基础练习 十六进制转十进制

    蓝桥杯试题 基础练习 十六进制转十进制 C/C++实现 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出. ...

  3. Python 蓝桥杯试题 基础练习 十六进制转八进制

    Python 蓝桥杯试题 基础练习 十六进制转八进制 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 输入的第一行为一个正整数n (1<=n<=10). 接下来n行, ...

  4. 蓝桥杯试题 基础练习 数列特征python

    蓝桥杯试题 基础练习 数列特征python 资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 给出n个数,找出这n个数的最大值,最小值,和. 输入格式 第一行为整数n,表示数的个数. ...

  5. Python 蓝桥杯试题 基础练习 特殊回文数

    Python 蓝桥杯试题 基础练习 特殊回文数 问题描述: 123321是一个非常特殊的数,它从左边读和从右边读是一样的. 输入一个正整数n, 编程求所有这样的五位和六位十进制数,满足各位数字之和等于 ...

  6. Python 蓝桥杯试题 基础练习 数列排序

    Python 蓝桥杯试题 基础练习 数列排序 题目描述: 问题描述 给定一个长度为n的数列,将这个数列按从小到大的顺序排列.1<=n<=200 输入格式 第一行为一个整数n. 第二行包含n ...

  7. 蓝桥杯试题 基础练习 Sine之舞

    蓝桥杯试题 基础练习 Sine之舞 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 最近FJ为他的奶牛们开设了数学分析课,FJ知道若要学好这门课,必须有一个好的三角函数基本功.所以他 ...

  8. Python 蓝桥杯试题 基础练习 字母图形

    Python 蓝桥杯试题 基础练习 字母图形 问题描述: 利用字母可以组成一些美丽的图形,下面给出了一个例子: ABCDEFG BABCDEF CBABCDE DCBABCD EDCBABC 这是一个 ...

  9. java蓝桥杯 试题-基础练习-十六进制转八进制

    试题-基础练习-十六进制转八进制 题目 试题 基础练习 十六进制转八进制 资源限制 时间限制:1.0s 内存限制:512.0MB 问题描述 给定n个十六进制正整数,输出它们对应的八进制数. 输入格式 ...

最新文章

  1. 卧槽!什么神仙行业月入10万,人才缺口30万?
  2. 织梦直接写php标签,非常实用的织梦dede所有标签调用方法大全 .
  3. layui 自定义排序_浅谈layui中table的sort排序
  4. 自定义组合控件:下拉选择框
  5. 同盾科技完成 7280 万美元 C 轮融资
  6. oxyen eclipse 启动 报错 se启动提示javaw.exe in your current PATH、No java virtual machine
  7. Kylin启动异常:java.lang.outofMemoryError:Requested array size exceeds VM limit
  8. 记一次因Redis使用不当导致应用卡死过程
  9. scp上传服务器加特殊端口
  10. cocos2dx-lua 批量打包及修改
  11. Confluence 6 目录中的数据库
  12. 李开复说明年有一批AI创企会倒闭,不想死的创业公司需要警惕什么?
  13. iOS8设置应用图标红点的权限问题
  14. .net HTML编码解析
  15. python3--命名空间字典
  16. 【滤波器】基于matlab GUI低通+带通+高通FIR与IIR滤波器设计【含Matlab源码 360期】
  17. C语言函数指针和指针函数的定义和调用
  18. 【openGL2021版】obj模型
  19. 机器学习8-误差逆传播算法BP的认识
  20. Base64自定义编码表及破解

热门文章

  1. pip._vendor.pkg_resources.VersionConflict: (pip 20.3.4 (/home/wsy/.local/lib/python3.5/site-packages
  2. vue 同一页面多次引用同一组件
  3. 花样字体代码出错怎么改
  4. 计算机应用基础山东省,《计算机应用基础/山东省高校教改项目立项教材》低价购书_计算机与互联网_孔网...
  5. C++学习笔记_04抽象类、多态 2021-04-15
  6. dart null safty中list?.isEmpty报错的处理
  7. ubnutu安装QQ,微信
  8. 类文件结构_class类文件的的结构
  9. jQuery基础(五)—— jQuery选择器
  10. Xiaojie雷达之路---拉伸信号处理