java转八进制
1. 你的方法,应先做个字符串拼接,不然3个整数,用+号连接,Java默认先计算再输出
2. Java中Integer类中,有方法可以将10进制数转成8进制数
3. 采用格式化输出
代码如下,有注释,参考:
classwork8{
publicstaticvoidmain(String[]args){
intnum=100;
System.out.println("Java自带的方法转8进制:"+Integer.toOctalString(num));
intn1=num&7;
inttemp1=num>>>3;
intn2=temp1&7;
inttemp2=temp1>>>3;
intn3=temp2&7;
//做字符串拼接
System.out.println(""+n3+n2+n1);
//格式化输出
System.out.printf("%d%d%d",n3,n2,n1);
}
}
亲,如果回答满意,请即时采纳,谢谢!
B. Java中怎么表示八进制和十六进制了
八进制:int a=031; //8进制,以数字0开始。
十六进制:int b=0x1B; //16进制,以0x开始。
C. 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
D. 求Java大神,十进制转八进制,请问我的代码该怎么改
十进制转八进制JDK有提供API,
十进制转八进制最简单的方法:
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));
E. JAVA中运用Stack类实现十进制转换成八进制
直接在分割的时候就执行压栈操作,出栈时移位相加,一个栈就能解决,不过毫无意义,在开发中并没有什么卵用。
有问题欢迎提问,满意请采纳,谢谢!
F. Java 16进制转换成8进制
G. 用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;
}
}
H. java方法利用栈,将十进制数转换成八进制的数
import java.util.Scanner;
import java.util.Stack;/**
* 将十进制数转换为八进制数
*
* @author austin
*/
public class DecimalToOctalConvertor { /**
* @param args
*/
public static void main(String[] args) {
/*
* 接收一个用户从通过键盘输入的整数,作为要转换的十进制数
*/
Scanner reader = new Scanner(System.in);
System.out.print("请输入要转换的十进制数:");
int decimalNum = reader.nextInt(); /*
* 采用除8取余,从下至上的算法来计算八进制数:即用进制数除以8,然后将所得余数作为8进制数的低位数,再用所得的商继续除以8,以此类推,直到商为0为止
* 在这个过程中,每次的余数都需要保存到一个列表中,而且后添加到列表中的元素要先输出,即后进先出,因此采用栈结构来处理
*/
Stack<Integer> octalStack = new Stack<Integer>();
int temp = decimalNum;
do {
octalStack.push(temp % 8); // 将除以8所得的余数添加到栈中
temp /= 8; // 计算除以8所得的商
}
while (temp != 0); // 如果商不为0,则继续计算下去 /*
* 采用后进先出的方式输入栈中的元素,就得到了所要求的八进制数
*/
System.out.print("八进制:0");
while (!octalStack.isEmpty()) {
System.out.print(octalStack.pop());
}
System.out.println();
}
}
I. 十六进制转八进制 java
package hextooctal;
import java.util.HashMap;
public class HexToOctal {
public static void main(String[] args) {
String str = hexToOctal("1a5f");
System.out.println(str);
}
//十六进制转八进制
public static String hexToOctal(String str) {
String s = hexToBinary(str);
//System.out.println(s);
String s1 = binaryHandle(s);
//System.out.println(s1);
return binaryToOctal(s1);
}
//十六进制转成二进制
public static String hexToBinary(String hexNum){
char[] chs = {'0','1'};
String str = new String("0123456789ABCDEF");
char[] charArray = hexNum.toUpperCase().toCharArray();
int pos = charArray.length*4;
char[] binaryArray = new char[pos];
for (int i = charArray.length - 1; i >=0; i--) {
int temp = str.indexOf(charArray[i]);
for(int j=0;j<4;j++){
binaryArray[--pos] = chs[temp & 1];
temp = temp >>> 1;
}
}
return new String(binaryArray);
}
//二进制转成八进制
public static String binaryToOctal(String binary){
HashMap<String,Character> map = new HashMap<String, Character>();
map.put("000", '0');
map.put("001", '1');
map.put("010", '2');
map.put("011", '3');
map.put("100", '4');
map.put("101", '5');
map.put("110", '6');
map.put("111", '7');
int pos = binary.length()/3;
char[] octArray = new char[pos];
for(int i = binary.length();i>0;i-=3){
String s = binary.substring(i-3,i);
octArray[--pos] = map.get(s);
}
return new String(octArray);
}
//处理二进制字符串
public static String binaryHandle(String binary){
String str = binary.substring(binary.indexOf('1'));
int len = str.length();
if(len%3==0)
return str;
else if(len%3 == 1)
return "00"+str;
else
return "0" + str;
}
}