问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用JAVA怎样实现十进制,八进制,二进制,十六进制的相互转换,求解

发布网友 发布时间:2022-04-29 16:40

我来回答

2个回答

热心网友 时间:2023-10-20 05:39

/*
比较原始的方案,可供学习原理
*/

import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Test_math {

public static void main(String args[]) {
Scanner in =new Scanner(System.in);
int m,n;//m进制转n进制
System.out.println("输入原始数据进制:");
m=in.nextInt();
System.out.println("请输入目标数据进制");
n=in.nextInt();
System.out.println("输入要转换的数据");
in.nextLine();
String s=in.nextLine();
int x10=0;

if(m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("结果:"+x10);
return;
}
String ans=Test_math.十进制转m进制(x10, n);

System.out.println("结果:"+ans);

// int d = 1458;
// String s2 = Test_math.十进制转m进制(d, 16);
// System.out.println(s2);
// s2 = "100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System.out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i));
switch(s.charAt(i))
{
case 'A': case 'a': t="10"; break;
case 'B': case 'b': t="11"; break;
case 'C': case 'c': t="12"; break;
case 'D': case 'd': t="13"; break;
case 'E': case 'e': t="14"; break;
case 'F': case 'f': t="15"; break;
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}

public static String 十进制转m进制(int s, int m) {
String ans = "";
int n = (int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.十进制转m进制(s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i] >= 10) {
switch (c[i]) {
case 10:
ans += "A";
break;
case 11:
ans += "B";
break;
case 12:
ans += "C";
break;
case 13:
ans += "D";
break;
case 14:
ans += "E";
break;
case 15:
ans += "F";
break;
}
} else {
ans += c[i];
}
}

return ans;
}
public static int[] 十进制转m进制(int s, int m, int n) {
//System.out.println(" \n s="+s+"  m="+m+ " n="+n);
//十进制转m进制,并凑出n位数,存到一个数组中返回
int[] ans = new int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int 当前位 = n - 1;
while (s >= m) {
//System.out.println("s="+s+" 当前位="+当前位);
ans[当前位] = s % m;
当前位--;
s = s / m;
}
ans[当前位] = s;
return ans;
}
}

热心网友 时间:2023-10-20 05:40

Integer.toHexString(int i)转化为16进制,返回String类型.
Integer.toOctalString(int i)转化为8进制,返回String类型.
Integer.toBinaryString(int i)转化为2进制,返回String类型.
原理:
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}

热心网友 时间:2023-10-20 05:39

/*
比较原始的方案,可供学习原理
*/

import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Test_math {

public static void main(String args[]) {
Scanner in =new Scanner(System.in);
int m,n;//m进制转n进制
System.out.println("输入原始数据进制:");
m=in.nextInt();
System.out.println("请输入目标数据进制");
n=in.nextInt();
System.out.println("输入要转换的数据");
in.nextLine();
String s=in.nextLine();
int x10=0;

if(m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("结果:"+x10);
return;
}
String ans=Test_math.十进制转m进制(x10, n);

System.out.println("结果:"+ans);

// int d = 1458;
// String s2 = Test_math.十进制转m进制(d, 16);
// System.out.println(s2);
// s2 = "100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System.out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i));
switch(s.charAt(i))
{
case 'A': case 'a': t="10"; break;
case 'B': case 'b': t="11"; break;
case 'C': case 'c': t="12"; break;
case 'D': case 'd': t="13"; break;
case 'E': case 'e': t="14"; break;
case 'F': case 'f': t="15"; break;
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}

public static String 十进制转m进制(int s, int m) {
String ans = "";
int n = (int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.十进制转m进制(s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i] >= 10) {
switch (c[i]) {
case 10:
ans += "A";
break;
case 11:
ans += "B";
break;
case 12:
ans += "C";
break;
case 13:
ans += "D";
break;
case 14:
ans += "E";
break;
case 15:
ans += "F";
break;
}
} else {
ans += c[i];
}
}

return ans;
}
public static int[] 十进制转m进制(int s, int m, int n) {
//System.out.println(" \n s="+s+"  m="+m+ " n="+n);
//十进制转m进制,并凑出n位数,存到一个数组中返回
int[] ans = new int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int 当前位 = n - 1;
while (s >= m) {
//System.out.println("s="+s+" 当前位="+当前位);
ans[当前位] = s % m;
当前位--;
s = s / m;
}
ans[当前位] = s;
return ans;
}
}

热心网友 时间:2023-10-20 05:40

Integer.toHexString(int i)转化为16进制,返回String类型.
Integer.toOctalString(int i)转化为8进制,返回String类型.
Integer.toBinaryString(int i)转化为2进制,返回String类型.
原理:
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}

热心网友 时间:2023-10-20 05:39

/*
比较原始的方案,可供学习原理
*/

import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Test_math {

public static void main(String args[]) {
Scanner in =new Scanner(System.in);
int m,n;//m进制转n进制
System.out.println("输入原始数据进制:");
m=in.nextInt();
System.out.println("请输入目标数据进制");
n=in.nextInt();
System.out.println("输入要转换的数据");
in.nextLine();
String s=in.nextLine();
int x10=0;

if(m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("结果:"+x10);
return;
}
String ans=Test_math.十进制转m进制(x10, n);

System.out.println("结果:"+ans);

// int d = 1458;
// String s2 = Test_math.十进制转m进制(d, 16);
// System.out.println(s2);
// s2 = "100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System.out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i));
switch(s.charAt(i))
{
case 'A': case 'a': t="10"; break;
case 'B': case 'b': t="11"; break;
case 'C': case 'c': t="12"; break;
case 'D': case 'd': t="13"; break;
case 'E': case 'e': t="14"; break;
case 'F': case 'f': t="15"; break;
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}

public static String 十进制转m进制(int s, int m) {
String ans = "";
int n = (int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.十进制转m进制(s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i] >= 10) {
switch (c[i]) {
case 10:
ans += "A";
break;
case 11:
ans += "B";
break;
case 12:
ans += "C";
break;
case 13:
ans += "D";
break;
case 14:
ans += "E";
break;
case 15:
ans += "F";
break;
}
} else {
ans += c[i];
}
}

return ans;
}
public static int[] 十进制转m进制(int s, int m, int n) {
//System.out.println(" \n s="+s+"  m="+m+ " n="+n);
//十进制转m进制,并凑出n位数,存到一个数组中返回
int[] ans = new int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int 当前位 = n - 1;
while (s >= m) {
//System.out.println("s="+s+" 当前位="+当前位);
ans[当前位] = s % m;
当前位--;
s = s / m;
}
ans[当前位] = s;
return ans;
}
}

热心网友 时间:2023-10-20 05:40

Integer.toHexString(int i)转化为16进制,返回String类型.
Integer.toOctalString(int i)转化为8进制,返回String类型.
Integer.toBinaryString(int i)转化为2进制,返回String类型.
原理:
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}

热心网友 时间:2023-10-20 05:39

/*
比较原始的方案,可供学习原理
*/

import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Test_math {

public static void main(String args[]) {
Scanner in =new Scanner(System.in);
int m,n;//m进制转n进制
System.out.println("输入原始数据进制:");
m=in.nextInt();
System.out.println("请输入目标数据进制");
n=in.nextInt();
System.out.println("输入要转换的数据");
in.nextLine();
String s=in.nextLine();
int x10=0;

if(m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("结果:"+x10);
return;
}
String ans=Test_math.十进制转m进制(x10, n);

System.out.println("结果:"+ans);

// int d = 1458;
// String s2 = Test_math.十进制转m进制(d, 16);
// System.out.println(s2);
// s2 = "100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System.out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i));
switch(s.charAt(i))
{
case 'A': case 'a': t="10"; break;
case 'B': case 'b': t="11"; break;
case 'C': case 'c': t="12"; break;
case 'D': case 'd': t="13"; break;
case 'E': case 'e': t="14"; break;
case 'F': case 'f': t="15"; break;
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}

public static String 十进制转m进制(int s, int m) {
String ans = "";
int n = (int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.十进制转m进制(s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i] >= 10) {
switch (c[i]) {
case 10:
ans += "A";
break;
case 11:
ans += "B";
break;
case 12:
ans += "C";
break;
case 13:
ans += "D";
break;
case 14:
ans += "E";
break;
case 15:
ans += "F";
break;
}
} else {
ans += c[i];
}
}

return ans;
}
public static int[] 十进制转m进制(int s, int m, int n) {
//System.out.println(" \n s="+s+"  m="+m+ " n="+n);
//十进制转m进制,并凑出n位数,存到一个数组中返回
int[] ans = new int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int 当前位 = n - 1;
while (s >= m) {
//System.out.println("s="+s+" 当前位="+当前位);
ans[当前位] = s % m;
当前位--;
s = s / m;
}
ans[当前位] = s;
return ans;
}
}

热心网友 时间:2023-10-20 05:40

Integer.toHexString(int i)转化为16进制,返回String类型.
Integer.toOctalString(int i)转化为8进制,返回String类型.
Integer.toBinaryString(int i)转化为2进制,返回String类型.
原理:
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}

热心网友 时间:2023-10-20 05:39

/*
比较原始的方案,可供学习原理
*/

import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Test_math {

public static void main(String args[]) {
Scanner in =new Scanner(System.in);
int m,n;//m进制转n进制
System.out.println("输入原始数据进制:");
m=in.nextInt();
System.out.println("请输入目标数据进制");
n=in.nextInt();
System.out.println("输入要转换的数据");
in.nextLine();
String s=in.nextLine();
int x10=0;

if(m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("结果:"+x10);
return;
}
String ans=Test_math.十进制转m进制(x10, n);

System.out.println("结果:"+ans);

// int d = 1458;
// String s2 = Test_math.十进制转m进制(d, 16);
// System.out.println(s2);
// s2 = "100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System.out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i));
switch(s.charAt(i))
{
case 'A': case 'a': t="10"; break;
case 'B': case 'b': t="11"; break;
case 'C': case 'c': t="12"; break;
case 'D': case 'd': t="13"; break;
case 'E': case 'e': t="14"; break;
case 'F': case 'f': t="15"; break;
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}

public static String 十进制转m进制(int s, int m) {
String ans = "";
int n = (int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.十进制转m进制(s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i] >= 10) {
switch (c[i]) {
case 10:
ans += "A";
break;
case 11:
ans += "B";
break;
case 12:
ans += "C";
break;
case 13:
ans += "D";
break;
case 14:
ans += "E";
break;
case 15:
ans += "F";
break;
}
} else {
ans += c[i];
}
}

return ans;
}
public static int[] 十进制转m进制(int s, int m, int n) {
//System.out.println(" \n s="+s+"  m="+m+ " n="+n);
//十进制转m进制,并凑出n位数,存到一个数组中返回
int[] ans = new int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int 当前位 = n - 1;
while (s >= m) {
//System.out.println("s="+s+" 当前位="+当前位);
ans[当前位] = s % m;
当前位--;
s = s / m;
}
ans[当前位] = s;
return ans;
}
}

热心网友 时间:2023-10-20 05:40

Integer.toHexString(int i)转化为16进制,返回String类型.
Integer.toOctalString(int i)转化为8进制,返回String类型.
Integer.toBinaryString(int i)转化为2进制,返回String类型.
原理:
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}

热心网友 时间:2023-10-20 05:39

/*
比较原始的方案,可供学习原理
*/

import java.util.Scanner;
/**
*
* @author Administrator
*/
public class Test_math {

public static void main(String args[]) {
Scanner in =new Scanner(System.in);
int m,n;//m进制转n进制
System.out.println("输入原始数据进制:");
m=in.nextInt();
System.out.println("请输入目标数据进制");
n=in.nextInt();
System.out.println("输入要转换的数据");
in.nextLine();
String s=in.nextLine();
int x10=0;

if(m!=10)
{
x10=Test_math.m_to_ten(s, m);
}
else
{
x10=Integer.parseInt(s);
}
if(n==10)
{
System.out.println("结果:"+x10);
return;
}
String ans=Test_math.十进制转m进制(x10, n);

System.out.println("结果:"+ans);

// int d = 1458;
// String s2 = Test_math.十进制转m进制(d, 16);
// System.out.println(s2);
// s2 = "100100";
// d = Test_math.bin_to_ten(s2);
// System.out.println(d);
// System.out.println(Test_math.m_to_ten("AA", 16));
}
public static int m_to_ten(String s, int m) {
int d = 0;
int len = s.length();
for (int i = 0; i < len; i++) {
String t = String.valueOf(s.charAt(i));
switch(s.charAt(i))
{
case 'A': case 'a': t="10"; break;
case 'B': case 'b': t="11"; break;
case 'C': case 'c': t="12"; break;
case 'D': case 'd': t="13"; break;
case 'E': case 'e': t="14"; break;
case 'F': case 'f': t="15"; break;
}
int ds = Integer.parseInt(t) * (int) Math.pow(m, (len - i - 1));
d += ds;
}
return d;
}

public static String 十进制转m进制(int s, int m) {
String ans = "";
int n = (int) (Math.log(s) / Math.log(m)) + 1;
int[] c = new int[n];
c = Test_math.十进制转m进制(s, m, n);
for (int i = 0; i < n; i++) {
if (m == 16 && c[i] >= 10) {
switch (c[i]) {
case 10:
ans += "A";
break;
case 11:
ans += "B";
break;
case 12:
ans += "C";
break;
case 13:
ans += "D";
break;
case 14:
ans += "E";
break;
case 15:
ans += "F";
break;
}
} else {
ans += c[i];
}
}

return ans;
}
public static int[] 十进制转m进制(int s, int m, int n) {
//System.out.println(" \n s="+s+"  m="+m+ " n="+n);
//十进制转m进制,并凑出n位数,存到一个数组中返回
int[] ans = new int[n];
for (int i = 0; i < n; i++) {
ans[i] = 0;
}
int 当前位 = n - 1;
while (s >= m) {
//System.out.println("s="+s+" 当前位="+当前位);
ans[当前位] = s % m;
当前位--;
s = s / m;
}
ans[当前位] = s;
return ans;
}
}

热心网友 时间:2023-10-20 05:40

Integer.toHexString(int i)转化为16进制,返回String类型.
Integer.toOctalString(int i)转化为8进制,返回String类型.
Integer.toBinaryString(int i)转化为2进制,返回String类型.
原理:
private static String toUnsignedString(int i, int shift) {
char[] buf = new char[32];
int charPos = 32;
int radix = 1 << shift;
int mask = radix - 1;
do {
buf[--charPos] = digits[i & mask];
i >>>= shift;
} while (i != 0);
return new String(buf, charPos, (32 - charPos));
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
说课包括哪些方面 说课内容包括()。 如何在手机百度上删除对话记录? 结核病是什么样的疾病? 曹丕17岁得了肺痨,明知自己命不长久,还要强争王位,是不是很自私呢?_百... 古代小说常出现的病名 急求一篇"生活小窍门"(500字)的作文 至今最有什么小妙招 健康的戒烟方法 笔记本电池锁死是什么原因引起的? java里面二进制 八进制 十进制 十六进制怎么互相转换,有什么规律? java方法利用栈,将十进制数转换成八进制的数 java怎样将十进制转为八进制的数的编码 大和证券和恒胜财经联合诈骗投资者请求有关部门调查。 大和证券是世界500强吗? 海际大和证券有限责任公司怎么样? 看图写话堆雪人小画家画错了什么 怎么堆雪人 求详细步骤 下雪了,小朋友在堆雪人的拼音 有几个小朋友在堆雪人的简笔画 四维星装修设计软件下载网址有吗? 刚入烟气水质在线监测,求各家设备的说明书(烟气分析仪、COD、氨氮等),谢谢!! 污水在线监测cod试剂不同厂家设备可互用吗 COD便携式水质监测仪哪个牌子的好用 请问哪些企业需要安装COD、氨氮在线监测仪?污水处理厂呢 cod在线监测设备什么牌子好,cod在线监测 COD在线监测仪哪家好 我们公司要安装COD在线监测仪,请问南京鸿凯的产品怎么样?好不好? COD测定仪哪家的好? 谁知道目前国外有哪些知名厂家的环境在线监测仪器可以测量COD 氨氮 总氮 挥发酚?以及代理商的电话,谢谢 请问怎么用java编程语言,将10进制的数字转为2进制,8进制,16进制?具体代码怎么写? JAVA程序把十进制转成二,八,十六进制 Java实现:将一个十进制数分别转换成二进制,八进制和十六进制,用户界面如图 (必须Java实现) Java中如何实现十进制到其他进制的转换 如何用java写个整数进制转换器 JAVA十进制转八位二进制 java十进制数转换成二进制,8进制以及16进制二进制转十进制 java里,二进制、十进制、八进制、十六进制互相转换的问题 十进制转换二进制、八进制和十六进制java程序 如图java语言的十进制转八进制,谁能帮我修改为c语言,c语言最好能带上注释,给采纳,我没编程基础 JAVA中运用Stack类实现十进制转换成八进制 java编程:进制转换 JAVA中一个十进制整数转换成八进制数是1234为什么 用java将十进制转为八进制,下面程序答案正确但格式错误,求解格式哪错了 我是个女生 ,为什么男人的歌我能唱上去 ,而女人的歌我却唱不了? 我是女的,女歌手的歌我基本上都唱不上去,只能唱男低音歌手的歌。 我是一个14岁的女生,唱高音时回破音,低音也唱不下去,有时还会嗓子疼,会不会是变声期呢? 为什么有些女生会唱低音? 巴西龟有几个品种 十大凶猛龟排名是怎样的?