Now~Let's begin our second question~

如何利用Java语言将十进制数字转换成十六进制数字呢?

我第一次编码出来的效果是酱紫的~

/**
*
*/
package com.succez.task2; import java.util.Scanner; /**
* <p>Copyright: Copyright (c) 2018</p>
* <p>succez</p>
* @author ZhangJinjin
* @createdate 2018年5月3日
*/
public class intToHex { /**
* 先输入一个整型数字,判断其是否为0,若为0,则其16进制同样为0;
* 若number不为0,则对16取余,并转换成16进制相应的字符;
* number=number/16,重复过程2、3,用字符数组s依次保存每一位;
* 输出的时候逆序输出即可
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int number = sc.nextInt();
int i = 0;
char[] S = new char[100];
if(number == 0){
System.out.print(0);
}
else{
while(number!=0)
{
int t=number%16;
if(t >=0 && t<10)
{
S[i] = (char)(t+'0');
i++;
}
else
{
S[i] = (char)(t+'A'-10);
i++;
}
number=number/16;
} for (int j=i-1;j>=0;j--)
{
System.out.print(S[j]);
}
}
}
}

Of course It's true~

As you can see from the picture~


然而,经过讨论,我们发现尽管这样可以实现它的功能,但是需要费脑子去思考,那么,可不可以很明显清晰地表达呢~

那么,经过一番修改,这样子应该可以了吧~

/**
*
*/
package com.succez.task2; import java.util.Scanner; /**
* <p>Copyright: Copyright (c) 2018</p>
* <p>succez</p>
* @author ZhangJinjin
* @createdate 2018年5月4日
*/
public class intToHex_Alter { /**
* 这次算法用了StringBuffer效率更好
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("请输入要转换的十进制的数:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
System.out.println("转换的十六进制的数为:"+intToHex(n));
} private static String intToHex(int n) {
StringBuffer s = new StringBuffer();
String a;
char []b = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(n != 0){
s = s.append(b[n%16]);
n = n/16;
}
a = s.reverse().toString();
return a;
} }

嘻嘻~已经提交啦,OK~

下面来看看 StringBuffer

String类型的相加效率并不高,所以这个时候就要考虑StringBuffer里面的append()这个方法~

OK,简直完美~

/**
*
*/
package com.succez.task2; import java.util.Scanner; /**
* <p>Copyright: Copyright (c) 2018</p>
* <p>succez</p>
* @author ZhangJinjin
* @createdate 2018年5月4日
*/
public class intToHex_Alter { /**
* 这次算法用了StringBuffer效率更好
*/
public static void main(String[] args) {
// TODO Auto-generated method stub System.out.println("请输入要转换的十进制的数:");
Scanner input = new Scanner(System.in);
int n = input.nextInt();
System.out.println("转换的十六进制的数为:"+intToHex(n));
} private static String intToHex(int n) {
//StringBuffer s = new StringBuffer();
StringBuilder sb = new StringBuilder(8);
String a;
char []b = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
while(n != 0){
sb = sb.append(b[n%16]);
n = n/16;
}
a = sb.reverse().toString();
return a;
} }

Java实现十进制数转十六进制数的更多相关文章

  1. Java如何将十六进制数转换为十进制数的自编程序

    package com.swift;//所属包 import java.util.Scanner;//导入扫描器 public class Hex2Decimal { public static vo ...

  2. 在Java中,为什么十六进制数0xFF取反之后对应的十进制数是-256呢?

    int number = 0xFF: 字面值是指在程序中无需变量保存,可直接表示为一个具体的数字或字符串的值. 0xFF是一个整数字面值,整数字面值的缺省类型是 int. 我们知道在Java中, in ...

  3. java_十进制数转换为二进制,八进制,十六进制数的算法

    java_十进制数转换为二进制,八进制,十六进制数的算法 java Ê®½øÖÆÊýת»»Îª¶þ½øÖÆ,°Ë½øÖÆ,Ê®Áù½øÖÆÊýµÄË㕨 using System; using S ...

  4. Java中实现十进制数转换为二进制的三种思路

    Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...

  5. java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果

    package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...

  6. 【模板小程序】任意长度非负十进制数转化为二进制(java实现)

    妈妈再也不用担心十进制数过大了233(注意只支持非负数) import com.google.common.base.Strings; import java.math.BigInteger; imp ...

  7. 算法笔记_161:算法提高 十进制数转八进制数(Java)

    目录 1 问题描述 2 解决方案   1 问题描述 编写函数,其功能为把一个十进制数转换为其对应的八进制数.程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数. 样例输入 9274 样 ...

  8. Java实现算法提高十进制数转八进制数

    算法提高 十进制数转八进制数 时间限制:1.0s 内存限制:512.0MB 编写函数,其功能为把一个十进制数转换为其对应的八进制数.程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数. ...

  9. Java中实现十进制数转换为二进制的三种方法

    第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数 ...

随机推荐

  1. 登録更新(BAPI)

    購買管理(MM) * [BAPI_REQUISITION_CREATE] 購買依頼登録 * [BAPI_REQUISITION_CHANGE] 購買依頼変更 * [BAPI_REQUISITION_D ...

  2. Spring MVC: 环境搭建并实现简易的HelloWorld

    第一步:使用配置Tomcat服务器的Eclipse新建一个名为“TestSpringMVC”的web项目 第二步:将所使用的jar包复制到WEB-INF/lib目录下 第三步:在web.xml中配置D ...

  3. hdu4742 Pinball Game 3D

    真他娘的搞不懂cdq分治的顺序问题.但是candy?的博客里提到过,多想想吧-- #include <algorithm> #include <iostream> #inclu ...

  4. Close Java Auto Update in Windows 7 and Later

    0. Environment Windows 7JDK 1.6.0_45 1. Steps 1) Enter "JRE/bin" 2) Run javacpl.exe as adm ...

  5. Get Error when restoring database in Sql Server 2008 R2

         When I restored a database I got an error: "The backup set holds a backup of a database ot ...

  6. Less入门教程

    http://www.cnblogs.com/fsjohnhuang/p/4187675.html

  7. 接口自动化测试框架Karate入门

    介绍 在这篇文章中,我们将介绍一下开源的Web-API自动化测试框架--Karate Karate是基于另一个BDD测试框架Cucumber来建立的,并且共用了一些相同的思想.其中之一就是使用Gher ...

  8. [POJ3585]Accumulation Degree

    题面 \(\text{Solution:}\) 有些题目不仅让我们做树型 \(\text{dp}\) ,而且还让我们换每个根分别做一次, 然后这样就愉快的 \(\text{TLE}\) 了,所以我们要 ...

  9. ubuntu 开热点

    原文地址:https://www.cnblogs.com/king-ding/archive/2016/10/09/ubuntuWIFI.html 今天教大家一个简单方法让ubuntu发散wifi热点 ...

  10. CentOS安装Harbor

    CentOS版本:7.4 Harbor版本:1.5.0 Docker版本:1.12.6 Docker Compose版本:1.21.2 一.安装Harbor(http方式,80端口) 1.安装Dock ...