十六进制转八进制java_蓝桥网试题 java 基础练习 十六进制转八进制

本文探讨如何在长度不超过100000的十六进制数转换为八进制,避免了系统内置方法的局限,通过自定义算法实现,涉及二进制转换、长度调整和特殊格式检查。重点在于发现不变规律,使用StringBuilder提高效率。
摘要由CSDN通过智能技术生成

66928e51d565ef10340ebfcf78864715.png

d9549227a7f2b1270b0e39eafb7bfd86.png

-

------------------------------------------------------------------------------------------------------------------

(基础练习第二题就难住了 QAQ)

这道题的限制比较多,因为最开始说的是十六进制数的长度不超过100000,

而long类型才十九位,肯定不能用系统自带的进制转换方法,需要自己写

------------------------------------------------------------------------------------------------------------------

算法

1 import java.util.*;2 public classMain{3 public static voidmain(String[] args) {4 Scanner sc = newScanner(System.in);5 int n =sc.nextInt();6 String[] sts = newString[n];7 for(int i=0;i

27 k=0;28 for(int i=k;i

要注意小细节,十六进制每一位 对应4位二进制数,八进制对应3位二进制数,十六进制生成二进制后,

在转化八进制前,要查看长度是不是三的倍数,如果不是,则用0补齐.之后在转化八进制开始要判断

开头的三个是不是"000"的形式,如果是则不算在八进制数里.

1 int len_strBin =strBinary.length();2 if(len_strBin%3==1) strBinary = "00"+strBinary;3 if(len_strBin%3==2) strBinary = "0"+strBinary;4 String strOctal = toOctal(strBinary);

做好这类题目要学会去发现什么是变的 什么是不变的 不要试图全部用算法去实现,这样只会事倍功半.

StringBuffer适合定义一个经常变的字符串变量,使用StringBuilder 效率更高效

熟练使用charAt,append,substring方法.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值