您的位置:

java八进制,java八进制表示

本文目录一览:

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为止

* 在这个过程中,每次的余数都需要保存到一个列表中,而且后添加到列表中的元素要先输出,即后进先出,因此采用栈结构来处理

*/

StackInteger octalStack = new StackInteger();

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();

}

}

JAVA中八进制 十进制 十六进制分别是什么意思

和数学里八进制 十六进制没什么区别

不过在Java中声明八进制,是在赋值数字前加0,如 int i = 010; 输出为十进制10;

声明十六进制,在赋值数字前加0x,如int i = 0x15;输出为十进制21;

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里面二进制 八进制 十进制 十六进制怎么互相转换,有什么规律?

=============(正)十进制转二进制

除二将余数倒置

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

============十六进制转其他进制

都需要先转为二进制,再转为其他进制