栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

顺序栈实现十进制和十六进制转换[java]

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

顺序栈实现十进制和十六进制转换[java]

顺序栈实现十进制和十六进制转换[java]

十进制转十六进制十六进制转十进制

十进制转十六进制
    创建一个String类型的顺序栈,存放数字和字符十进制除16取余,余数若小于10则直接进栈;若大于10,通过(char)(余数+55)转成字母(char)(65)是A除尽后定义一个字符串接收栈的出栈,并输出
package p2.线性结构;
//顺序栈十进制转十六进制
public class DecToHex {
    public static void main(String[] args) {
        int num = 654321;
        ArrayStack stack = new ArrayStack<>();
        //逐个入栈
        while (num != 0){
            int a = num % 16;
            if (a < 10){
                stack.push(a+"");
            }else {
                stack.push((char)(a+55) + "");
            }
            num /= 16;
        }
        //逐个出栈
        StringBuilder sb = new StringBuilder();
        while (!stack.isEmpty()){
            sb.append(stack.pop());
        }
        System.out.println(sb);
    }
}
十六进制转十进制
    创建一个Character(字符型)的顺序栈并将16进制的字符串逐一进栈再将栈内的字符一个个弹出,进行加权计算对于数字或字母(弹栈出来都是char类型),如果是字母,则c - ‘A’ + 10进行转换(‘A’-‘A’=0),如果是数字,则c-‘0’(‘1’-‘0’=1)将字符转换成数字
package p2.线性结构;
//顺序栈实现十六进制转十进制
public class HexToDec {
    public static void main(String[] args) {
        String hex = "9FBF1";
        ArrayStack stack = new ArrayStack<>();
        for (int i = 0;i= '0' && c<='9' || c>='A' && c<='F')){
            throw new IllegalArgumentException("wrong char");
        }
        if (c >= '0' && c <= '9'){
            return c - '0';
        }else {
            return c - 'A' + 10;
        }
    }
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703810.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号