Java实现十进制数转十六进制数
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实现十进制数转十六进制数的更多相关文章
- Java如何将十六进制数转换为十进制数的自编程序
package com.swift;//所属包 import java.util.Scanner;//导入扫描器 public class Hex2Decimal { public static vo ...
- 在Java中,为什么十六进制数0xFF取反之后对应的十进制数是-256呢?
int number = 0xFF: 字面值是指在程序中无需变量保存,可直接表示为一个具体的数字或字符串的值. 0xFF是一个整数字面值,整数字面值的缺省类型是 int. 我们知道在Java中, in ...
- java_十进制数转换为二进制,八进制,十六进制数的算法
java_十进制数转换为二进制,八进制,十六进制数的算法 java Ê®½øÖÆÊýת»»Îª¶þ½øÖÆ,°Ë½øÖÆ,Ê®Áù½øÖÆÊýµÄË㕨 using System; using S ...
- Java中实现十进制数转换为二进制的三种思路
Java中实现十进制数转换为二进制 第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒 ...
- java语言将任意一个十进制数数字转换为二进制形式,并输出转换后的结果
package com.llh.demo; import java.util.Scanner; /** * * @author llh * */ public class Test { /* * 将任 ...
- 【模板小程序】任意长度非负十进制数转化为二进制(java实现)
妈妈再也不用担心十进制数过大了233(注意只支持非负数) import com.google.common.base.Strings; import java.math.BigInteger; imp ...
- 算法笔记_161:算法提高 十进制数转八进制数(Java)
目录 1 问题描述 2 解决方案 1 问题描述 编写函数,其功能为把一个十进制数转换为其对应的八进制数.程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数. 样例输入 9274 样 ...
- Java实现算法提高十进制数转八进制数
算法提高 十进制数转八进制数 时间限制:1.0s 内存限制:512.0MB 编写函数,其功能为把一个十进制数转换为其对应的八进制数.程序读入一个十进制数,调用该函数实现数制转换后,输出对应的八进制数. ...
- Java中实现十进制数转换为二进制的三种方法
第一种:除基倒取余法 这是最符合我们平时的数学逻辑思维的,即输入一个十进制数n,每次用n除以2,把余数记下来,再用商去除以2...依次循环,直到商为0结束,把余数倒着依次排列,就构成了转换后的二进制数 ...
随机推荐
- CopyArrays
import java.util.Arrays; public class CopyArrays { public static void main(String args[]) { int []a ...
- Python3爬虫(九) 数据存储之关系型数据库MySQL
Infi-chu: http://www.cnblogs.com/Infi-chu/ 关系型数据库关系型数据库是基于关系模型的数据库,而关系模型是通过二维表来保存的,所以关系型数据库的存储方式就是行列 ...
- shell重温---基础篇(函数操作)
linux shell 可以用户定义函数,然后在shell脚本中可以随便调用.shell中函数的定义格式如下: [ function ] funname [()] { action; [ret ...
- Android面试收集录 蓝牙与WiFi
1.打开手机中的蓝牙功能有哪些方法? 法1:使用Intent ==>new Intent(BluetoothAdaper.ACTION_REQUEST_ENABLE); startActivi ...
- MySQL基础复习
三范式定义 1NF:每个数据项都是最小单元,不可分割,其实就是确定行列之后只能对应一个数据. 2NF:每一个非主属性完全依赖于候选码(属性组的值能唯一的标识一个元组,但是其子集不可以). 3NF: ...
- asm和file system之间数据文件的转换
How to move a datafile from a file system to ASMMoving a datafile from the file system can be achive ...
- C++ STL容器——stack用法介绍
stack是一种容器适配器,专门设计用于在LIFO上下文中操作(后进先出),其中元素仅从容器的一端插入和删除. 容器适配器,而不是一种容器. 它是容器适配器是指,只要支持一系列方法的容器(empty, ...
- 【解决】Node JS Error: ENOENT
The Node Beginner Book 书中的实例代码当上传图片时会报Error: ENOENT, 原因:图片默认会选择系统的缓存文件夹下,在windows下无权访问C盘,所以就报错了.. 解决 ...
- 安装一台Linux练习机前的考虑——主机规划与磁盘分区
要安装一台Linux主机并不是那么简单的事,我们必须要针对distributions的特性.服务器软件的能力.未来的升级需求.硬件扩充性需求等来考虑,对于磁盘分区.文件系统.Linux操作较频繁的目录 ...
- PTA实验报告(循环 数组 函数)
一.循环PTA实验作业 题目一.7-2 求平方根序列前N项和 1.本题PTA提交列表 2.设计思路 本题调用了sqrt数学函数计算平方根,其次只用了一层循环,计算平方根之后使用循环累加计算总和sum. ...