我是靠谱客的博主 迷你黄豆,最近开发中收集的这篇文章主要介绍Java~十进制转二进制和十六进制的多种方法(含完整代码和注解)一.直接使用Java里面Integer类的方法二.常规的取余法运行结果: ,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一.直接使用Java里面Integer类的方法
-
Integer.toBinaryString(data) //data为十进制,转换成二进制
-
Integer.toHexString(data) //data为十进制,抓换成十六进制
System.out.println(Integer.toBinaryString(100)); // 将100转换成二进制输出
System.out.println(Integer.toHexString(100)); // 将100转换成十六进制输出
哈哈,其实有现成工具,不用白不用,对吧。
但是也可以自己尝试着实现一下,并不是很难的,如下第二种方法
二.常规的取余法
就和大家用手算把十进制转换成二进制和十六进制的方法原理一样,这里相当于是用java模拟了一遍。
1.将十进制转换为 二进制
这里我使用了ArrayList集合来存放余数,因为取余法要逆序输出,用ArrayList可以方便的使用Collections类的reverse方法将数组逆置,然后用for each顺序输出。当然也可以使用普通的数组,输出的时候注意一下要逆序输出就行。
public static void main(String[] args) {
//输入10进制,输出它的二进制和十六进制
Scanner sc = new Scanner(System.in);
int data = sc.nextInt(); //输入10进制数
{
int d = data;
ArrayList a = new ArrayList();
while(d != 0) //用除2取余法
{
a.add(d%2);
d=d/2;
}
Collections.reverse(a); //将数组逆置
System.out.print(data+"的二进制为");
for (Object o : a) { //for each循环
System.out.print(o);
}
System.out.println("");
a.clear();
}
}
2.将十进制转换为十六进制
十六进制和二进制原理类似,唯一要注意的就是当余数超过10的时候,要用对应的字母来表示,这里我定义了一个char类型的temp数组实现数字和字母之间的转换。
还有就是十六进制情况下的字母大小写的问题,可能大多数人,包括老师教的时候都是大写(比如6A),其实小写字母也是一样的,我这里用的是小写字母(比如6a)。
public static void main(String[] args) {
//输入10进制,输出它的二进制和十六进制
Scanner sc = new Scanner(System.in);
int data = sc.nextInt(); //输入10进制数
{
int d = data;
ArrayList a = new ArrayList();
while(d != 0)
{
if(d%16 < 10)
a.add(d%16);
else //如果余数大于10,将其转换成字母
{
char[] temp = new char[]{'a', 'b', 'c', 'd', 'e', 'f'};
a.add(temp[d%16-10]);
}
d=d/16;
}
Collections.reverse(a); //将数组逆置
System.out.print(data+"的十六进制为");
for (Object o : a) {
System.out.println(o);
}
System.out.println("");
a.clear();
}
}
运行结果:
欢迎大家评论指正,一起交流学习◕‿◕
最后
以上就是迷你黄豆为你收集整理的Java~十进制转二进制和十六进制的多种方法(含完整代码和注解)一.直接使用Java里面Integer类的方法二.常规的取余法运行结果: 的全部内容,希望文章能够帮你解决Java~十进制转二进制和十六进制的多种方法(含完整代码和注解)一.直接使用Java里面Integer类的方法二.常规的取余法运行结果: 所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复