本文目錄一覽:
- 1、java方法利用棧,將十進制數轉換成八進制的數
- 2、JAVA中八進制 十進制 十六進制分別是什麼意思
- 3、java怎樣將十進制轉為八進制的數的編碼
- 4、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
============十六進制轉其他進制
都需要先轉為二進制,再轉為其他進制
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/239389.html