用JAVA将十进制转换成十六进制

比如我输入十进制数10,那么对应的十六进制就是a,如何通过JAVA语言把十进制数10转换成十六进制数a。我知道转换是要除以16,我只是不明白怎么输出这个结果... 比如我输入十进制数10,那么对应的十六进制就是a,如何通过JAVA语言把十进制数10转换成十六进制数a。我知道转换是要除以16,我只是不明白怎么输出这个结果 展开
 我来答
小傅说数码
2018-06-28 · 数码小专家,专注分享数码知识
小傅说数码
采纳数:432 获赞数:29256

向TA提问 私信TA
展开全部

1、用Integer.toHexString方法即可将十进制装成十六进制

package com.test;

public class Test {

public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}

2、运行结果如下十进制的123转化成十六进制的7b

3、Integer.toHexString方法返回的结果是字符串

4、直接表达16进制,在JAVA里面可以在数字前加"0x",像这样

int j = 0x7b;
System.out.println(Integer.decode("0x7b"));

帐号已注销
2020-10-21 · TA获得超过1.8万个赞
知道答主
回答量:10.9万
采纳率:1%
帮助的人:5247万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dubois2007
2014-08-22 · TA获得超过3514个赞
知道小有建树答主
回答量:1236
采纳率:25%
帮助的人:404万
展开全部
import java.util.Scanner;

class Demo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请出入一个十进制数");
int num = sc.nextInt();
toHex(num);
System.out.println(Integer.toHexString(num));// java自带的转换十六进制方法
sc.close();
}

public static void toHex(int num) {
if (num == 0) {
System.out.println('0');
return;
}
char[] chs = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A','B', 'C', 'D', 'E', 'F'};
char[] arr = new char[8];
int pos = arr.length;
while (num != 0) {
arr[--pos] = chs[num & 15];
num = num >>> 4;
}
for (int i = pos; i < arr.length; i++) {
System.out.print(arr[i]);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
158******47
2018-11-27
知道答主
回答量:1
采纳率:0%
帮助的人:787
展开全部
//两种方法:
import java.util.Scanner;
public class TentoSixteen{
    private static StringBuilder sum = new StringBuilder();
    private static int rulst; //定义一个结果,记录数与15的与运算结果,求得原数二进制最后四位的值
    private static int count; //若数的二进制不止四位,定义一个数来记录除去后四位的新数,运用递归作用与rulst相同
  private static void TtoSMethod1(int i) { //JDK自带的转化方法
    String exchanged = Integer.toHexString(i);
    System.out.println(exchanged);
  }  
  private static void Sop() { //将得到的字符串反转
   System.out.println(sum.reverse().toString());
  }
  private static void subim(int rulst) {//判断是否超出10,根据十六进制的规则超出10部分由字母ABCDEF代替
    if(rulst<10) {
     sum.append(rulst);
    }else {
           sum.append((char)('A'+(rulst-10)));//将int强制转换为char
     }
  }
  private static void TtoSMethod2(int i) {
    rulst =i&15;
    if(i<(1<<4)&&i>=0) {//判断数有多少位,大于0小于16,则转换后打直接印
     subim(rulst);
    }else {//不止四位的数则用递归来多次运算
     count=i>>4;//除去最后四位
     subim(rulst);
     TtoSMethod2(count);//递归直到count为0止        
   }
  }  
  public static void main(String []args) {
   Scanner scan = new Scanner(System.in);
   System.out.println("请出入一个十进制数:");
   int num = scan.nextInt();
   TtoSMethod1(num);//自带方法
   TtoSMethod2(num);//自定义方法,可将任意的十进制转化为十六进制
   Sop();//输出
 }
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我爱昆虫0
2021-05-06
知道答主
回答量:2
采纳率:0%
帮助的人:923
展开全部
package com;
import java.util.Scanner;
/**
*
* @author aming
*
*/
public class Aming {

public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请输入需要转换的数值:");
System.out.println(io(toHex(input.nextInt())));
}

static String io(String hi) {
if(hi.indexOf("-")>=0) {
hi = hi.replaceAll("-", "");
return "-"+hi;
}
return hi;
}

static String toHex(int hi) {

if(hi/16 == 0) {
return svn(hi);
}
return toHex(hi/16)+svn(hi);
}
static String svn(int To) {
switch (To%16) {
case 10: return "A";
case 11: return "B";
case 12: return "C";
case 13: return "D";
case 14: return "E";
case 15: return "F";
case -10: return "A";
case -11: return "B";
case -12: return "C";
case -13: return "D";
case -14: return "E";
case -15: return "F";

default: return Integer.toString(To%16);
}
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式