精华内容
下载资源
问答
  • JAVA 进制转换工具
    2021-10-12 17:17:56

    进制转换工具类

    package com;
    
    
    import java.math.BigInteger;
    import java.util.Arrays;
    
    /**
     * @ClassName BaseConversionUtils
     * @Author Kochiya
     * @Date 9:53 2021/10/12
     * @Description 进制转换类
     * @Version 1.0
     **/
    public class BaseConversionUtils {
        /**
         * 十进制转换指定进制大小进制(11- 20 进制内 闭区间)
         *
         * @param original 十进制显示的数字字符串 (最大支持long的最大)
         * @param baseType 转换后对的进制类型
         * @return
         */
        public static String encrypt(String original, BaseType baseType) {
            if (baseType == null) {
                throw new RuntimeException("进制转换类型不能为null");
            }
            Long length = baseType.getBaseLength();
            long value = Long.valueOf(original).longValue();
            StringBuilder builder = new StringBuilder();
            int i = 0;
            while (value != 0) {
                long t = value % length;
                if (t >= 0 && t < 10) {
                    builder.append((char) (t + '0'));
                } else {
                    builder.append((char) (t + 'A' - 10));
                }
                i++;
                value = value / length;
            }
            String num = builder.reverse().toString();
    
            while (num.startsWith("0")){
                num = num.substring(1,num.length());
            }
            return num;
        }
    
        /**
         * 十进制转换指定进制大小进制(11- 20 进制内 闭区间)
         *
         * @param original 十进制显示的数字字符串
         * @param baseType 转换后对的进制类型
         * @return
         */
        public static String encryptByBigInt(String original, BaseType baseType) {
            if (baseType == null) {
                throw new RuntimeException("进制转换类型不能为null");
            }
            BigInteger length = BigInteger.valueOf(baseType.getBaseLength());
            BigInteger value = new BigInteger(original);
            StringBuilder builder = new StringBuilder();
            int i = 0;
            while (!value.toString().equals("0")) {
                int t = value.mod(length).intValue();
                if (t >= 0 && t < 10) {
                    builder.append((char) (t + '0'));
                } else {
                    builder.append((char) (t + 'A' - 10));
                }
                i++;
                value = value.divide(length);
            }
            String num = builder.reverse().toString();
    
            while (num.startsWith("0")){
                num = num.substring(1,num.length());
            }
            return num;
        }
    
        /**
         * 十进制转换指定进制大小进制(11- 35 进制内 闭区间) 十进制字符串包括以0开头的编译(转换值在long范围类)
         *
         * @param original 十进制显示的数字字符串
         * @param baseType 转换后对的进制类型
         * @return
         */
        public static String encryptToStartZero(String original, BaseType baseType) {
            if (baseType == null) {
                throw new RuntimeException("进制转换类型不能为null");
            }
            Long length = baseType.getBaseLength();
            int a = 0;
            while (original.startsWith("0")){
                original = original.substring(1,original.length());
                a++;
            }
            long value = Long.valueOf(original).longValue();
            StringBuilder builder = new StringBuilder();
            int i = 0;
            while (value != 0) {
                long t = value % length;
                if (t >= 0 && t < 10) {
                    builder.append((char) (t + '0'));
                } else {
                    builder.append((char) (t + 'A' - 10));
                }
                i++;
                value = value / length;
            }
            String num = builder.reverse().toString();
            while (num.startsWith("0")){
                num = num.substring(1,num.length());
            }
            if(a == 0){
                num = "1"+num;
            }else {
                num = "0"+a+num;
            }
            return num;
        }
    
        /**
         * 十进制转换指定进制大小进制(11- 35 进制内 闭区间) 十进制字符串包括以0开头的编译
         *
         * @param original 十进制显示的数字字符串
         * @param baseType 转换后对的进制类型
         * @return
         */
        public static String encryptToStartZeroToBigInt(String original, BaseType baseType) {
            if (baseType == null) {
                throw new RuntimeException("进制转换类型不能为null");
            }
            BigInteger length = BigInteger.valueOf(baseType.getBaseLength());
            int a = 0;
            while (original.startsWith("0")){
                original = original.substring(1,original.length());
                a++;
            }
    
            BigInteger value = new BigInteger(original);
            StringBuilder builder = new StringBuilder();
            int i = 0;
            while (!value.toString().equals("0")) {
                int t = value.mod(length).intValue();
                if (t >= 0 && t < 10) {
                    builder.append((char) (t + '0'));
                } else {
                    builder.append((char) (t + 'A' - 10));
                }
                i++;
                value = value.divide(length);
            }
            String num = builder.reverse().toString();
            while (num.startsWith("0")){
                num = num.substring(1,num.length());
            }
            if(a == 0){
                num = "1"+num;
            }else {
                num = "0"+a+num;
            }
            return num;
        }
    
        /**
         * 进制大小进制(11- 35 进制内 闭区间)转换为10进制 (编译前只支持long的最大值 否则结果会不正确)
         *
         * @param translation (11- 35 进制内 闭区间)进制显示的数字字符串
         * @param baseType 需要转换的进制类型
         * @return
         */
        public static String decrypt(String translation,BaseType baseType) {
            Long length = baseType.getBaseLength();
            long result = 0;
            long wei = 1;
            char[] chars = translation.toCharArray();
            for (int i = chars.length - 1; i >= 0; i--) {
                int a = 0;
                switch (chars[i]){
                    case 'A': a = 10;break;
                    case 'B': a = 11;break;
                    case 'C': a = 12;break;
                    case 'D': a = 13;break;
                    case 'E': a = 14;break;
                    case 'F': a = 15;break;
                    case 'G': a = 16;break;
                    case 'H': a = 17;break;
                    case 'I': a = 18;break;
                    case 'J': a = 19;break;
                    case 'K': a = 20;break;
                    case 'L': a = 21;break;
                    case 'M': a = 22;break;
                    case 'N': a = 23;break;
                    case 'O': a = 24;break;
                    case 'P': a = 25;break;
                    case 'Q': a = 26;break;
                    case 'R': a = 27;break;
                    case 'S': a = 28;break;
                    case 'T': a = 29;break;
                    case 'U': a = 30;break;
                    case 'V': a = 31;break;
                    case 'W': a = 32;break;
                    case 'X': a = 33;break;
                    case 'Y': a = 34;break;
                    case 'Z': a = 35;break;
                    default:  a = Integer.valueOf(String.valueOf(chars[i]));break;
                }
                result += a*wei;
                wei*=length;
            }
            return String.valueOf(result);
        }
    
        /**
         * 进制大小进制(11- 35 进制内 闭区间)转换为10进制
         *
         * @param translation (11- 35 进制内 闭区间)进制显示的数字字符串
         * @param baseType 需要转换的进制类型
         * @return
         */
        public static String decryptByBigInt(String translation,BaseType baseType) {
            BigInteger length = BigInteger.valueOf(baseType.getBaseLength());
            BigInteger result = new BigInteger("0");
            BigInteger wei = new BigInteger("1");
            char[] chars = translation.toCharArray();
            for (int i = chars.length - 1; i >= 0; i--) {
                long a = 0;
                switch (chars[i]){
                    case 'A': a = 10l;break;
                    case 'B': a = 11l;break;
                    case 'C': a = 12l;break;
                    case 'D': a = 13l;break;
                    case 'E': a = 14l;break;
                    case 'F': a = 15l;break;
                    case 'G': a = 16l;break;
                    case 'H': a = 17l;break;
                    case 'I': a = 18l;break;
                    case 'J': a = 19l;break;
                    case 'K': a = 20l;break;
                    case 'L': a = 21l;break;
                    case 'M': a = 22l;break;
                    case 'N': a = 23l;break;
                    case 'O': a = 24l;break;
                    case 'P': a = 25l;break;
                    case 'Q': a = 26l;break;
                    case 'R': a = 27l;break;
                    case 'S': a = 28l;break;
                    case 'T': a = 29l;break;
                    case 'U': a = 30l;break;
                    case 'V': a = 31l;break;
                    case 'W': a = 32l;break;
                    case 'X': a = 33l;break;
                    case 'Y': a = 34l;break;
                    case 'Z': a = 35l;break;
                    default:  a = Long.valueOf(String.valueOf(chars[i]));break;
                }
                BigInteger multiply = wei.multiply(BigInteger.valueOf(a));
                result = result.add(multiply);
                wei = wei.multiply(length);
            }
            return result.toString();
        }
    
        /**
         * 进制大小进制(11- 35 进制内 闭区间)转换为10进制  数字字符串有零开头的情况 (编译前只支持long的最大值 否则结果会不正确)
         *
         * @param translation (11- 35 进制内 闭区间)进制显示的数字字符串
         * @param baseType 需要转换的进制类型
         * @return
         */
        public static String decryptToStartZero(String translation,BaseType baseType) {
            Long length = baseType.getBaseLength();
            long result = 0;
            long wei = 1;
            int a1 = 0;
            if(translation.startsWith("0")){
                char c = translation.charAt(1);
                a1 = Integer.valueOf(String.valueOf(c));
                translation = translation.substring(2,translation.length());
            }else {
                translation = translation.substring(1,translation.length());
            }
            char[] chars = translation.toCharArray();
            for (int i = chars.length - 1; i >= 0; i--) {
                int a = 0;
                switch (chars[i]){
                    case 'A': a = 10;break;
                    case 'B': a = 11;break;
                    case 'C': a = 12;break;
                    case 'D': a = 13;break;
                    case 'E': a = 14;break;
                    case 'F': a = 15;break;
                    case 'G': a = 16;break;
                    case 'H': a = 17;break;
                    case 'I': a = 18;break;
                    case 'J': a = 19;break;
                    case 'K': a = 20;break;
                    case 'L': a = 21;break;
                    case 'M': a = 22;break;
                    case 'N': a = 23;break;
                    case 'O': a = 24;break;
                    case 'P': a = 25;break;
                    case 'Q': a = 26;break;
                    case 'R': a = 27;break;
                    case 'S': a = 28;break;
                    case 'T': a = 29;break;
                    case 'U': a = 30;break;
                    case 'V': a = 31;break;
                    case 'W': a = 32;break;
                    case 'X': a = 33;break;
                    case 'Y': a = 34;break;
                    case 'Z': a = 35;break;
                    default:  a = Integer.valueOf(String.valueOf(chars[i]));break;
                }
                result += a*wei;
                wei*=length;
            }
            if(a1 != 0){
                String suffix = "";
                for (int i = a1; i > 0; i--) {
                    suffix+=0;
                }
                return suffix+String.valueOf(result);
            }
            return String.valueOf(result);
        }
    
        /**
         * 进制大小进制(11- 35 进制内 闭区间)转换为10进制  数字字符串有零开头的情况
         *
         * @param translation (11- 35 进制内 闭区间)进制显示的数字字符串
         * @param baseType 需要转换的进制类型
         * @return
         */
        public static String decryptToStartZeroByBigInt(String translation,BaseType baseType) {
            BigInteger length = BigInteger.valueOf(baseType.getBaseLength());
            BigInteger result = BigInteger.valueOf(0l);
            BigInteger wei = BigInteger.valueOf(1l);
            int a1 = 0;
            if(translation.startsWith("0")){
                char c = translation.charAt(1);
                a1 = Integer.valueOf(String.valueOf(c));
                translation = translation.substring(2,translation.length());
            }else {
                translation = translation.substring(1,translation.length());
            }
            char[] chars = translation.toCharArray();
            for (int i = chars.length - 1; i >= 0; i--) {
                long a = 0;
                switch (chars[i]){
                    case 'A': a = 10l;break;
                    case 'B': a = 11l;break;
                    case 'C': a = 12l;break;
                    case 'D': a = 13l;break;
                    case 'E': a = 14l;break;
                    case 'F': a = 15l;break;
                    case 'G': a = 16l;break;
                    case 'H': a = 17l;break;
                    case 'I': a = 18l;break;
                    case 'J': a = 19l;break;
                    case 'K': a = 20l;break;
                    case 'L': a = 21l;break;
                    case 'M': a = 22l;break;
                    case 'N': a = 23l;break;
                    case 'O': a = 24l;break;
                    case 'P': a = 25l;break;
                    case 'Q': a = 26l;break;
                    case 'R': a = 27l;break;
                    case 'S': a = 28l;break;
                    case 'T': a = 29l;break;
                    case 'U': a = 30l;break;
                    case 'V': a = 31l;break;
                    case 'W': a = 32l;break;
                    case 'X': a = 33l;break;
                    case 'Y': a = 34l;break;
                    case 'Z': a = 35l;break;
                    default:  a = Long.valueOf(String.valueOf(chars[i]));break;
                }
                result = result.add(wei.multiply(BigInteger.valueOf(a)));
                wei = wei.multiply(length);
            }
            if(a1 != 0){
                String suffix = "";
                for (int i = a1; i > 0; i--) {
                    suffix+=0;
                }
                return suffix+result.toString();
            }
            return String.valueOf(result);
        }
        
        /**
         * 进制种类枚举
         */
        public enum BaseType {
            BASE_11(11L),
            BASE_12(12L),
            BASE_13(13L),
            BASE_14(14L),
            BASE_15(15L),
            BASE_16(16L),
            BASE_17(17L),
            BASE_18(18L),
            BASE_19(19L),
            BASE_20(20L),
            BASE_21(21L),
            BASE_22(22L),
            BASE_23(23L),
            BASE_24(24L),
            BASE_25(25L),
            BASE_26(26L),
            BASE_27(27L),
            BASE_28(28L),
            BASE_29(29L),
            BASE_30(30L),
            BASE_31(31L),
            BASE_32(32L),
            BASE_33(33L),
            BASE_34(34L),
            BASE_35(35L);
            private Long BaseLength;
    
            public Long getBaseLength() {
                return BaseLength;
            }
    
            public void setBaseLength(Long baseLength) {
                BaseLength = baseLength;
            }
    
            BaseType(Long baseLength) {
                this.BaseLength = baseLength;
            }
        }
    }
    
    
    更多相关内容
  • 本程展示如何使用Java中Swing程序来设计进制转换器,实现十进制到二进制,八进制,十六进制的转换。
  • Java进制转换实现

    2021-01-10 13:12:14
    Java感兴趣的相关人群
  • java进制转换器 图形用户界面 十进制及其相反数分别转化为二,四,八,十六进制package com.rgy.Test;import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Label;import ...

    java进制转换器 图形用户界面 十进制及其相反数分别转化为二,四,八,十六进制

    package com.rgy.Test;

    import java.awt.Color;

    import java.awt.FlowLayout;

    import java.awt.GridLayout;

    import java.awt.Label;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import javax.swing.JFrame;

    import javax.swing.JPanel;

    import javax.swing.JTextField;

    import com.rgy.Tools.Tools;

    public class SystemSwitch {

    private JPanel panel_left;

    private JPanel panel_right;

    private Label label[];

    private JTextField text_field[];

    public void init(){

    JFrame f=new JFrame("int整数的进制转化");

    f.setVisible(true);

    f.setLocation(500, 250);

    f.setBackground(Color.lightGray);

    f.setLayout(new FlowLayout());

    panel_left=new JPanel();

    panel_right=new JPanel();

    panel_left.setLayout(new GridLayout(5,1,10,10));

    panel_right.setLayout(new GridLayout(5,2,10,10));

    String str[]={"十进制","二进制","四进制","八进制","十六进制"};

    label=new Label[5];//重要

    for(int i=0;i

    label[i]=new Label(str[i],Label.RIGHT);

    panel_left.add(label[i]);

    }

    text_field=new JTextField[10];//重要

    for(int i=0;i

    text_field[i]=new JTextField(20);

    panel_right.add(text_field[i]);

    if(i%2==1){

    text_field[i].setEditable(false);

    }

    }

    f.add(panel_left);

    f.add(panel_right);

    f.pack();

    text_field[0].addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    String str,str1,str2="",str3="",str4="";//辅助变量

    int len;

    int temp;

    str=text_field[0].getText();

    temp=Integer.parseInt(str);

    text_field[1].setText(""+(-temp));//十进制负数

    //正数二进制

    if(Integer.toBinaryString(temp).length()<=32){

    len=32-Integer.toBinaryString(temp).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[2].setText(str4+Integer.toBinaryString(temp));

    str4="";

    }

    else{

    return;

    }

    //相反数二进制

    text_field[3].setText(Integer.toBinaryString(-temp));

    //相反数四进制(利用负数的二进制分别进行两位合并得到该负数的四进制)

    str1=text_field[3].getText();

    for(int i=0;i

    str2=str1.substring(i,i+2);

    str3=str3+(Integer.parseInt(str2.substring(0,1))*2+

    Integer.parseInt(str2.substring(1,2)));

    }

    text_field[5].setText(str3);

    //正数四进制

    if((""+Tools.getQuanteranry(temp)).length()<=16){

    len=16-(""+Tools.getQuanteranry(temp)).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[4].setText(str4+Tools.getQuanteranry(temp));

    str4="";

    }

    else{

    return;

    }

    //正数八进制

    if(Integer.toOctalString(temp).length()<=12){

    len=12-Integer.toOctalString(temp).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[6].setText(str4+Integer.toOctalString(temp));

    str4="";

    }

    else{

    return;

    }

    //相反数八进制

    text_field[7].setText(Integer.toOctalString(-temp));

    //正数十六进制

    if(Integer.toHexString(temp).length()<=8){

    len=8-Integer.toHexString(temp).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[8].setText(str4+Integer.toHexString(temp));

    str4="";

    }

    else{

    return;

    }

    //相反数十六进制

    text_field[9].setText(Integer.toHexString(-temp));

    }

    });

    }

    public static void main(String args[]){

    new SystemSwitch().init();

    }

    }

    122742430.jpg

    展开全文
  • import java.awt.Color;import java.awt.FlowLayout;import java.awt.GridLayout;import java.awt.Label;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import jav...

    package com.rgy.Test;

    import java.awt.Color;

    import java.awt.FlowLayout;

    import java.awt.GridLayout;

    import java.awt.Label;

    import java.awt.event.ActionEvent;

    import java.awt.event.ActionListener;

    import javax.swing.JFrame;

    import javax.swing.JPanel;

    import javax.swing.JTextField;

    import com.rgy.Tools.Tools;

    public class SystemSwitch {

    private JPanel panel_left;

    private JPanel panel_right;

    private Label label[];

    private JTextField text_field[];

    public void init(){

    JFrame f=new JFrame("int整数的进制转化");

    f.setVisible(true);

    f.setLocation(500, 250);

    f.setBackground(Color.lightGray);

    f.setLayout(new FlowLayout());

    panel_left=new JPanel();

    panel_right=new JPanel();

    panel_left.setLayout(new GridLayout(5,1,10,10));

    panel_right.setLayout(new GridLayout(5,2,10,10));

    String str[]={"十进制","二进制","四进制","八进制","十六进制"};

    label=new Label[5];//重要

    for(int i=0;i

    label[i]=new Label(str[i],Label.RIGHT);

    panel_left.add(label[i]);

    }

    text_field=new JTextField[10];//重要

    for(int i=0;i

    text_field[i]=new JTextField(20);

    panel_right.add(text_field[i]);

    if(i%2==1){

    text_field[i].setEditable(false);

    }

    }

    f.add(panel_left);

    f.add(panel_right);

    f.pack();

    text_field[0].addActionListener(new ActionListener() {

    public void actionPerformed(ActionEvent e) {

    String str,str1,str2="",str3="",str4="";//辅助变量

    int len;

    int temp;

    str=text_field[0].getText();

    temp=Integer.parseInt(str);

    text_field[1].setText(""+(-temp));//十进制负数

    //正数二进制

    if(Integer.toBinaryString(temp).length()<=32){

    len=32-Integer.toBinaryString(temp).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[2].setText(str4+Integer.toBinaryString(temp));

    str4="";

    }

    else{

    return;

    }

    //相反数二进制

    text_field[3].setText(Integer.toBinaryString(-temp));

    //相反数四进制(利用负数的二进制分别进行两位合并得到该负数的四进制)

    str1=text_field[3].getText();

    for(int i=0;i

    str2=str1.substring(i,i+2);

    str3=str3+(Integer.parseInt(str2.substring(0,1))*2+

    Integer.parseInt(str2.substring(1,2)));

    }

    text_field[5].setText(str3);

    //正数四进制

    if((""+Tools.getQuanteranry(temp)).length()<=16){

    len=16-(""+Tools.getQuanteranry(temp)).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[4].setText(str4+Tools.getQuanteranry(temp));

    str4="";

    }

    else{

    return;

    }

    //正数八进制

    if(Integer.toOctalString(temp).length()<=12){

    len=12-Integer.toOctalString(temp).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[6].setText(str4+Integer.toOctalString(temp));

    str4="";

    }

    else{

    return;

    }

    //相反数八进制

    text_field[7].setText(Integer.toOctalString(-temp));

    //正数十六进制

    if(Integer.toHexString(temp).length()<=8){

    len=8-Integer.toHexString(temp).length();

    for(int i=0;i

    str4=str4+"0";

    }

    text_field[8].setText(str4+Integer.toHexString(temp));

    str4="";

    }

    else{

    return;

    }

    //相反数十六进制

    text_field[9].setText(Integer.toHexString(-temp));

    }

    });

    }

    public static void main(String args[]){

    new SystemSwitch().init();

    }

    }

    0818b9ca8b590ca3270a3433284dd417.png

    展开全文
  • 本程序提供1-36进制的int数据转换javaSwing开发。 package asd; import java.awt.Font; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.util.ArrayList; import ...

    本程序提供1-36进制的int数据转换。

    javaSwing开发。

    package asd;
    
    import java.awt.Font;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;
    import java.util.Locale;
    
    import javax.swing.JButton;
    import javax.swing.JComponent;
    import javax.swing.JFrame;
    import javax.swing.JLabel;
    import javax.swing.JTextField;
    
    //进制转换工具
    @SuppressWarnings("serial")
    public class RadixChangeToolUI extends JFrame {
    
    	public RadixChangeToolUI() {
    		
    	}
    	
    	public void init() {
    		setContenpane();
    		actionListen();
            mainFrame();
            
    	}
    	
    	//图形化界面函数
    	public void mainFrame() {
    		//设置窗口的参数
            setBounds(500,50,530,300);
            //禁用重新调整窗口大小的功能
            setResizable(false);
            //关闭窗口的右上角的叉的同时关闭程序
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            //设置窗口上当前程序的名字
            setTitle("进制转换工具V1.01.01.008");
            //清除默认的布局管理器
            getContentPane().setLayout(null);
            //设置窗口显示
            setVisible(true);
    	}
    	
    	//控件
    	JTextField jt1, jt2, jt3, answer_text;
    	JLabel jl1, jl2, jl3, answer, help, tips;
    	JButton button;
    	//控件集合,方便修改字体等
    	ArrayList<JComponent> list_conponent = new ArrayList<>();
    	
    	//放置控件
    	public void setContenpane() {
    		
    		//文本输入框
    		jt1 = new JTextField();
    		jt2 = new JTextField();
    		jt3 = new JTextField();
    		answer_text = new JTextField();
    		
    		jt1.setBounds(120, 30, 120, 40);
    		jt2.setBounds(120, 100, 120, 40);
    		jt3.setBounds(120, 170, 120, 40);
    		answer_text.setBounds(300, 170, 200, 40);
    		
    		list_conponent.add(jt1);
    		list_conponent.add(jt2);
    		list_conponent.add(jt3);
    		list_conponent.add(answer_text);
    		
    		getContentPane().add(jt1);
    		getContentPane().add(jt2);
    		getContentPane().add(jt3);
    		getContentPane().add(answer_text);
    		
    		//标签
    		jl1 = new JLabel("输入数据:");
    		jl2 = new JLabel("输入进制:");
    		jl3 = new JLabel("转换进制:");
    		answer = new JLabel("转换结果:");
    		help = new JLabel("若结果不显示则表示数据过大无法显示!");
    		tips = new JLabel("本程序提供 1-36 进制互转,数据支持int(过大无效)");
    		
    		jl1.setBounds(20, 30, 100, 40);
    		jl2.setBounds(20, 100, 100, 40);
    		jl3.setBounds(20, 170, 100, 40);
    		answer.setBounds(300, 120, 200, 60);
    		help.setBounds(280, 30, 220, 30);
    		tips.setBounds(20, 240, 350, 30);
    		
    		list_conponent.add(jl1);
    		list_conponent.add(jl2);
    		list_conponent.add(jl3);
    		list_conponent.add(answer);
    		//help不存入集合
    		//tips不存入集合
    		
    		getContentPane().add(jl1);
    		getContentPane().add(jl2);
    		getContentPane().add(jl3);
    		getContentPane().add(answer);
    		getContentPane().add(help);
    		getContentPane().add(tips);
    		
    		//按钮
    		button = new JButton("转换");
    		
    		button.setBounds(300, 70, 80, 35);
    		
    		list_conponent.add(button);
    		
    		getContentPane().add(button);
    		
    		//字体
    		for(JComponent jc:list_conponent) {
    			jc.setFont(new Font("黑体",Font.BOLD,20));
    		}
    		
    		
    	}
    	
    	//事件监听函数
    	public void actionListen() {
    		button.addActionListener(new ActionListener() {
    			
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				//获取左边三个文本输入框内容
    				String a = jt1.getText();
    				int b = Integer.parseInt(jt2.getText());
    				int c = Integer.parseInt(jt3.getText());
    				
    				
    	            //判断文本输入框内容是否合法(第一个)
    	            char[] chars = a.toCharArray();
    	            int len = chars.length;
    	            for (int i = 0; i < len; i++) {
    	                if(chars[i] < 48 || chars[i] > 57){
    	                    if(chars[i] < 65 || chars[i] > 90){
    	                        //首个位置可以是符号位,但是只能是 '-' '+'
    	                        if(i == 0){
    	                            if(chars[0] != '-' && chars[0] != '+'){
    	                            	answer.setText("输入数据有误");
    	                            	answer_text.setText("NULL");
    	                            	return;
    	                            }
    	                        }else {
    	                        	answer.setText("输入数据有误");
    	                        	answer_text.setText("NULL");
                                	return;
    	                        }
    	                    }
    	                }
    	            }
    	            
    	            
    	            
    	            //需要判断一下所给类型是否合法,判断输入数据中的最大字符。
    	            //第二个文本输入框与第三个文本输入框的进制是否合法
    	            int maxChar = 1;
    	            
    	            for (char t : chars) {
    	                //ASCII转换,本来分别是 -48 -55,但是因为是进制类型故需要加一
    	                //(例:最大字符为 '0' 时,最小为 '1' 进制;
    	                // 最大字符为 '9' 时,最小为 '10' 进制;
    	                // 最大字符为 'F' 时,最小为 '16'进制)
    	                if(t < 57){
    	                    maxChar = Math.max(maxChar, t - 47);
    	                }else{
    	                    maxChar = Math.max(maxChar, t - 54);
    	                }
    
    	            }
    	            
    	            if(b < 1 || b > 36 || maxChar > b || c < 1 || c >36) {
    	            	answer.setText("输入进制有误");
    	            	answer_text.setText("NULL");
                    	return;
    	            }
    	            
    	            //转换结果
    	            int model_num;
    	            String sum;
    	            if(b != c){
    	                //将其他进制数据转换为10进制
    	            	model_num = Integer.parseInt(a, b);
    	                //将10进制数据转换为其他进制                       转换为大写字母
    	                sum = Integer.toString(model_num, c).toUpperCase(Locale.ROOT);
    	                answer.setText("转换结果:");
    	                answer_text.setText(sum);
                    	return;
    	            }else{
    	            	//原进制与所需进制相同无需转换
    	            	answer.setText("转换结果:");
    	            	answer_text.setText(a);
    	            	return;
    	            }
    
    			}
    		});
    	}
    	
    	//主函数
    	public static void main(String[] args) {
    		new RadixChangeToolUI().init();
    	}
    	
    	
    	
    }
    
    

    jdk8

    无论输入是否合法,一定返回结果。

    需要请自行提取:链接:https://pan.baidu.com/s/1IDSricZ1E_SsSaWlP1U49w 
    提取码:deux

    展开全文
  • Java--进制转换(一)

    2022-04-15 08:15:21
    Java 代码实现进制转换 Java 实现进制转换有现成封装好的类,如 Integer、BigInteger的构造函数等,下面写的是用 java 代码实现进制转换的过程。 (一)十进制 转 二进制、八进制 输入:十进制 输出:二进制、八进制...
  • 本文实例讲述了Java实现复杂的进制转换器功能。分享给大家供大家参考,具体如下:这是用java写的进制转换器,包括10、2、8、16进制之间共12种的相互转换。输入一个要转换的数之后,按提示选择所采用的转换方式,输出...
  • Java基于界面的二,十,八,十六进制转换工具源代码
  • JAVA 简单进制转换

    2021-03-13 17:26:32
    JAVA作业写了个进制转换器...写出来的东西还蛮怪的/** Author:graykido* Coding:GBK* */package Caculater;import javafx.scene.layout.Background;import javafx.scene.layout.BackgroundImage;import javax.rmi....
  • java实现进制之间的转换
  • 进制与十进制转换 (1)二进制转十进制 方法:“按权展开求和” 【例】:整数转换 【例】:小数转换 (0.101)2 = 1x2-1 +0x2-2 +1x2-3 = (0.625)10 规律:个位上的数字的次数是0,十位上的数字的次数是1,…,...
  • 一个用java写的进制转换器,有图形界面。 主要是调用java的lang类进行转换。
  • java进制转换为图片

    2021-03-06 13:03:35
    我们经常会将一个小的图片变成小一些的图片,利用 java 可以方便的实现,而 且实现了这个功能后就可以实现更强大的......BMP图二进制转换_IT/计算机_专业资料。BMP图格式 二进制转换 C#下将 BMP 转换成二进制是比较...
  • 由其他进制转换为十进制比较简单,下面着重谈一谈十进制如何化为其他进制。1.使用Java带有的方法Integer,最简单粗暴了,代码如下//使用java提供的方法//但仅局限于比较常用的二进制、八进制、十六进制public static...
  • 展开全部java实现:整数进制相互转换的方法:十进制转62616964757a686964616fe78988e69d8331333363376461为二进制、八进制、十六进制, 用 Integer.toXXXString()方法(1)十进制转为二进制: Integer.toBinaryString...
  • java进制转化界面

    2012-12-10 00:33:29
    java进制转化界面 java进制转化界面
  • package com.rgy.Test; import java.awt.Color; import java.awt.FlowLayout;...import java.awt.GridLayout;...import java.awt.Label;...import java.awt.event.ActionEvent;...import java.awt.event.ActionListener...
  • 多功能科学计算器(包括进制转换,三角函数,四则运算等
  • Java实现进制转换

    2019-05-26 14:05:32
    进制转二进制 一、除数留余法: 用2整除十进制整数,可以得到一个商和余数,再用2去除商,又会得到一个商和余数,如此进行,直到商为小于1时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为...
  • 上一份程序,不小心引用了一个DEV的WPF控件,导致了在正常的VS 2010环境中不可编译。...1 2进制到36进制之间的相互转换; 2 当前仅支持正整数 3 界面用WPF制作 4 VS2010开发,.NET Framework4.0
  • GUI 界面 一共有三个文本框,一个退出按钮 从任一个文本框中输入对应进制的整数,另两个文本框将这个文本框中的整数自动地转换成另对应的进制并显示。
  • java 进制转化

    2021-04-18 01:37:14
    java进制转换器 图形用户界面 十进制及其相反数分别转化为二,四,八,十六进制 package com.rgy.Test; import java.awt.Color; import java.awt.FlowLayout; import java.awt.GridLayout; ... HDU5050:Divided ...
  • Java控制台实现 package transform; import java.util.Scanner; public class ConversionDemo { public static void main(String[] args) { int[] arrayTmp = getRangeArray(); printTen(arrayTmp); ...
  • 课程设计包括了论述部分和代码部分,比较全的,供大家参考·· 本次课程设计主要是用Java语言编写程序,实现简易。本计算器的进制转换器采用了Swing 界面,运用面向对象思想、多线程技术、以及消息处理机制。
  • 题目:不知道啥原因,题目那个界面打不开,我就口述一下,就是输入一个数,然后把这个十六进制还换成十进制。 昨天做了一个十进制转十六进制,收获颇多。今天做这个十六进制转十进制,又学习了一个新技能。天啊。...
  • 可实现进制转换 二进制 十六进制 八进制 可实现带括号运算,调用JavaScript中eval函数 增加彩蛋,如果输入的数字为当前系统年月日则触发彩蛋 弹出对话框,点击”是“播放吉林农业大学毕业歌《玉簪花开的地方》片段

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 42,532
精华内容 17,012
关键字:

java进制转换界面

java 订阅