本文目錄一覽:
- 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-tw/n/239389.html