「java八进制教学」java实现十进制转八进制
今天给各位分享java八进制教学的知识,其中也会对java实现十进制转八进制进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java里面二进制 八进制 十进制 十六进制怎么互相转换,有什么规律?
=============(正)十进制转二进制
除二将余数倒置
eg: 127 /2
商:63 /2 31 /2 15 /2 7 /2 3 /2 1
余数:1 1 1 1 1 1
1111111
=============(负)十进制转二进制
1、先求负数绝对值的二进制
2、将得到的二进制完全取反+1
eg: -12
1、0000 1100
2、1111 0011 + 1 = 1111 0100
=============(正)十进制转八进制
除八将余数倒置
eg:54 /8 =66
6
6
=============(负)十进制转八进制
1、先将十进制转为二进制
2、再将二进制转为八进制
eg:-32
1、0010 0000
2、1110 0000
3、三位三位转
340
=============十进制转十六进制
1、先将十进制转为二进制
2、将二进制转为十六进制
=============二进制转为十进制
(正)二进制位上的各个数字乘以以2为底数,以自然数为次幂(自然数从0开始)
0110 1011 1*2^0 + 1*2^1 + 0*2^2 + 1*2^3 + 0*2^4 + 1*2^5 + 1*2^6 = 107
(负)
1、首先得到负号
2、将该二进制数取反+1
3、将得到的数转为十进制加上负号。
=============二进制转八进制
(1)将二进制三个三个分为一组,分别求出每组二进制的八进制值,将所得到的值依次排开
(2) 1、将二进制转为十进制
2、将十进制转为八进制
============二进制转十六进制
将二进制四个四个分为一组,分别求出每组二进制的十六进制值,将所得到的值依次排开
============八进制转二进制
(1)将八进制各个位上的数单个转为二进制,不足三位的补0
eg:127 001 010 111
(2) 1、将八进制转为十进制
2、再将十进制转为二进制
============八进制转十进制
八进制位上的各个数字乘以以8为底数,以自然数为次幂(自然数从0开始)
543 3*8^0 + 4*8^1 + 5*8^2 = 355
============八进制转十六进制
1、先将八进制转为二进制
2、再将所得的二进制转为十六进制
============十六进制转二进制
将十六进制各个位上的数单个转为二进制,不足四位的补0
eg:127 0001 0010 0111
============十六进制转其他进制
都需要先转为二进制,再转为其他进制
java怎样将十进制转为八进制的数的编码
十进制转八进制最简单的方法
System.out.println("10的八进制="+Integer.toOctalString(10));
扩展
十进制转二进制、八进制、十六进制
System.out.println("10的二进制="+Integer.toBinaryString(10));
System.out.println("10的八进制="+Integer.toOctalString(10));
System.out.println("10的十六进制="+Integer.toHexString(10));
10的二进制=1010
10的八进制=12
10的十六进制=a
用JAVA怎样实现十进制,八进制,二进制,十六进制的相互转换,求解
/*
比较原始的方案,可供学习原理
*/
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;
}
}
关于java八进制教学和java实现十进制转八进制的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。