① java实现:将一个十进制数分别转换成二进制,八进制和十六进制,用户界面如图 (必须Java实现)
Java源程序:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
{
JTextFieldtxtDec;
JTextFieldtxtBin;
JTextFieldtxtOct;
JTextFieldtxtHex;
publicTest25(){
("十进制整数转换");
txtDec=newJTextField(15);
txtBin=newJTextField(15);
txtOct=newJTextField(15);
txtHex=newJTextField(15);
txtBin.setEditable(false);
txtOct.setEditable(false);
txtHex.setEditable(false);
this.setLayout(newFlowLayout());
this.add(newJLabel("十进制"));
this.add(txtDec);
this.add(newJLabel("二进制"));
this.add(txtBin);
this.add(newJLabel("八进制"));
this.add(txtOct);
this.add(newJLabel("十六进制"));
this.add(txtHex);
txtDec.addActionListener(this);
this.setSize(250,150);
this.setResizable(false);
this.setVisible(true);
}
publicstaticvoidmain(String[]args){
newTest25();
}
@Override
publicvoidactionPerformed(ActionEvente){
JTextFieldtxt=(JTextField)e.getSource();
if(txt.getText()==null||txt.getText().trim().equals("")){
JOptionPane.showMessageDialog(this,"十进制数不能为空");
return;
}
intnum;
try{
num=Integer.parseInt(txt.getText());
if(num<0){
num*=-1;
txtBin.setText("-"+Convert.format(num,2));
txtOct.setText("-"+Convert.format(num,8));
txtHex.setText("-"+Convert.format(num,16));
}
else{
txtBin.setText(Convert.format(num,2));
txtOct.setText(Convert.format(num,8));
txtHex.setText(Convert.format(num,16));
}
}
catch(Exceptionex){
JOptionPane.showMessageDialog(this,"十进制数错误");
return;
}
}
}
classConvert{
privatestaticString[]bins={"0","1"};
privatestaticString[]octs={"0","1","2","3","4","5","6","7"};
privatestaticString[]hexs={"0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"};
publicstaticStringformat(intnum,intr){
StringBufferbuff=newStringBuffer();
if(r==2){
while(num>0){
buff.append(bins[num%r]);
num/=r;
}
}
elseif(r==8){
while(num>0){
buff.append(octs[num%r]);
num/=r;
}
}
elseif(r==16){
while(num>0){
buff.append(hexs[num%r]);
num/=r;
}
}
buff.reverse();
returnbuff.toString();
}
}
运行测试:
② java实现:整数进制相互转换
java实现:整数进制相互转换的方法:
十进制转为二进制、八进制、十六进制, 用 Integer.toXXXString()方法
(1)十进制转为二进制: Integer.toBinaryString(int i);
public static String toBinaryString(inti):以二进制(基数 2)无符号整数形式返回一个整数参数的字符串表示形式。
(2)十进制转为8进制 :Integer.toOctalString(int i);
public static String toOctalString(inti):以八进制(基数 8)无符号整数形式返回一个整数参数的字符串表示形式。
(3)十进制转为16进制: Integer.toHexString(int i);
public static String toHexString(inti):以十六进制(基数 16)无符号整数形式返回一个整数参数的字符串表示形式。
举例:
Stringbin=Integer.toBinaryString(10);
Stringoct=Integer.toOctalString(10);
Stringhex=Integer.toHexString(10);
2.十六进制、八进制、二进制转为十进制(有两种方法):parseInt() 和valueOf()。
Integer.parseInt(String s,int radix);
public static int parseInt(String s,int radix) throws NumberFormatException{}使用第二个参数作为指定的基数,将字符串参数解析为有符号的整数;
Integer.valueOf(String s,int radix);
public static Integer valueOf(Strings, intradix) throws NumberFormatException{}返回一个 Integer 对象,该对象中保存了用第二个参数提供的基数进行解析时从指定的 String 中提取的值。
举例:
try{
inti=Integer.parseInt("a",16);
//输出为10进制数10
System.out.println(i);
}catch(Exceptione){
e.printStackTrace();
}
try{
//十六进制转成十进制
Stringhex=Integer.valueOf("FFFF",16).toString();
System.out.println(hex);
//八进制转成十进制
Stringoct=Integer.valueOf("12",8).toString();
System.out.println(oct);
//二进制转十进制
Stringbin=Integer.valueOf("0101",2).toString();
System.out.println(bin);
}catch(Exceptione){
e.printStackTrace();
}
③ 用JAVA将十进制转换成十六进制
1、用来Integer.toHexString方法即可将十进制装自成十六进制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
④ java中怎么将十进制转换为十六进制
用除商取余法
用十进制数除以16 记录下商和余数
然后继续用商去除以16记录下商和余数,直到商为0
最后将余数逆序排列就可以了
比如十进制数33转为十六进制
33/16=2 余1
2/16=0 余2
结果就是0x 21(十六进制以0x开头)
⑤ java中怎么将10进制转化成十六进制
Scanner sc = new Scanner(System.in);
System.out.println("请出入一个十进制数");
int x = sc.nextInt();
System.out.println(x+"的十六进制结果是:"+Integer.toHexString(x));
⑥ 请问怎么用java编程语言,将10进制的数字转为2进制,8进制,16进制具体代码怎么写
import java.io.*;
class test
{
static BufferedReader keyboard=new
BufferedReader(new InputStreamReader(System.in));
public static void main(String[]args)throws IOException
{
int n,base;
n=Integer.parseInt(keyboard.readLine());
exchange(n);
System.out.println();
}
public static void exchange(int n)
{
if(n>0)
{
exchange(n/2);
System.out.print(n%2);
}
}
}
这个是十进制转化为二进制的
用的是递归方法
八进制与十六进制思路相同