當前位置:首頁 » 操作系統 » 進制轉換Java演算法

進制轉換Java演算法

發布時間: 2023-04-23 04:27:31

java 進制轉換

public static void main(String[] args) {
int x = (int)(Math.random()*1000+1);
System.out.println("隨機數:"+x);
String allNumber = Integer.toString(x,3);
String[] tmmp = allNumber.split("");
String y = "";
for(String str : tmmp){
if (y.length() == 0 ){
y = y + str;
}else{
y=y+","+str;
}
}
System.out.println("生成的三進制:"+y);

// 逆序輸出
StringBuffer sb = new StringBuffer(allNumber);
String tmpx = sb.reverse().toString();
System.out.println("逆序輸出結果:"+tmpx);
//計算十六進制
String hexString = Integer.toString(Integer.parseInt(tmpx),16);
System.out.println("hexString="+hexString);
// 都換成十進制進行比較
int intB = Integer.valueOf(hexString,16);
int intA = Integer.valueOf(y,3);
if(intA>intB){
System.out.println("A>B");
}else if(intA==intB){
System.out.println("A=B");
}else{
System.out.println("A<B");
}

❷ java,關於二進制和十六進制的數據轉換

java進制轉換
java中進行二進制,八進制,十六進制,十進制間進行相互轉換
十進制轉成十六進制:
Integer.toHexString(int i)
十進制轉成八進制
Integer.toOctalString(int i)
十進制轉成二進制
Integer.toBinaryString(int i)
十六進制轉成十進制
Integer.valueOf("FFFF",16).toString()
八進制轉成十進制
Integer.valueOf("876",8).toString()
二進制轉十進制
Integer.valueOf("0101",2).toString()

❸ java實現:整數進制相互轉換

java實現:整數進制相互轉換的方法:

  1. 十進制轉為二進制、八進制、十六進制, 用 Integer.toXXXString()方法

    (1)十進制轉為二進制: Integer.toBinaryString(int i);

    public static String toBinaryString(inti):以二進制(基數 2)無符號整數形式返回一個整數參數的字元串表示形式。

    (2)十進制轉為8進制 :Integer.toOctalString(int i);
    public static String toOctalString(inti):以八進制(基數 8)無符號整數形式返回一個整數參數的字元串表示形式。

    (3)十進制轉為16進制: Integer.toHexString(int i);

    public static String toHexString(inti):以十六進制(基數 16)無符號整數形式返回一個整數參數的字元串表示形式。

舉例:

Stringbin=Integer.toBinaryString(10);
Stringoct=Integer.toOctalString(10);
Stringhex=Integer.toHexString(10);

2.十六進制、八進制、二進制轉為十進制(有兩種方法):parseInt() 和valueOf()。

Integer.parseInt(String s,int radix);

public static int parseInt(String s,int radix) throws NumberFormatException{}使用第二個參數作為指定的基數,將字元串參數解析為有符號的整數;

Integer.valueOf(String s,int radix);

public static Integer valueOf(Strings, intradix) throws NumberFormatException{}返回一個 Integer 對象,該對象中保存了用第二個參數提供的基數進行解析時從指定的 String 中提取的值。

舉例:

try{
inti=Integer.parseInt("a",16);
//輸出為10進制數10
System.out.println(i);
}catch(Exceptione){
e.printStackTrace();
}
try{
//十六進制轉成十進制
Stringhex=Integer.valueOf("FFFF",16).toString();
System.out.println(hex);
//八進制轉成十進制
Stringoct=Integer.valueOf("12",8).toString();
System.out.println(oct);
//二進制轉十進制
Stringbin=Integer.valueOf("0101",2).toString();
System.out.println(bin);
}catch(Exceptione){
e.printStackTrace();
}

❹ Java里的十二進制,六進制,二進制,分別怎麼轉換

轉換為2的幾何級數倍進制比較容易,其他的就不方便了。
先說和10進制的轉換:
倒序將2進制數編冪數,例如10101010從後向前冪數依次為7654321,所以它轉換為10進制就是1*2^7+0*2^6+1*2^5+0^2^4+1*2^3+0^2^2+1^2^1+0^2^0=170,這種演算法適用於將任意進制轉換為10進制,只要將底數替換即可。

下面說2的幾何級數倍的演算法:
一般就是將2進制按2的級數進行分段,比方說8進制(8是2的3次方),將2進制分為每3位一段進行轉換,每段單獨按十進制轉換即可。
10101010,分為10|101|010,然後每段進行單獨轉換,10轉換後為2,101轉換後為5,010轉換後為2,所以10101010(2)=252(8)。

其他進制一般演算法就是先將2進制轉換為10進制,再用短除法轉換為其他進制,短除法我記不清怎麼個演算法了,並不是算公約數之類的那個短除法,借位演算法比較特殊,只不過最後余數作為最後一位。
例如170(10)進制就使用170=332(7)

❺ java十進制轉二進制的代碼是什麼

import java.math.BigDecimal;
public class Test {
public static void main(String[] args) {
Test t = new Test();
double d = 8;
String s = t.decimal2BinaryStr(d);
System.out.println("十進制數"+d+"轉成二進制數為:"+s);
}
/**
* 十進制數轉二進制數
* @param d 十進制數
* @return 十進制數轉換成二進制的字元串
*/
public String decimal2BinaryStr(double d){
String result = decimal2BinaryStr_Inte(d);
result += decimal2BinaryStr_Deci(d);
return result;
}

/**
* 十進制整數部分轉二進制數
* @param d 十進制數
* @return 十進制整數部分轉換成二尺凱進制的字元串
*/
public String decimal2BinaryStr_Inte(double d){
// return Integer.toBinaryString((int)d);
/*

❻ java編程:進制轉換

Java中的進制轉換是通過基本數據類型類中的相應方法實現的。舉個例子:
public class IntegerChange {
public static void main(String[] args) {
String nm = new String("445");
int n = Integer.parseInt(nm);
System.out.println("十進製表示:" + n);
System.out.println("二進製表示:" + Integer.toBinaryString(n));
System.out.println("八進製表示:" + Integer.toOctalString(n));
System.out.println("十六進製表示:" + Integer.toHexString(n));
}
}
輸出結果:
十進製表示:445
二進製表示:110111101
八進製表示:675
十六進製表示:1bd
至於八進制轉換為十進制,十六進制,二進制等等都有相應的方法,具體的可以查看Java幫助文檔。
希望對你有所幫助。

❼ 用JAVA把二進制數轉換成十進制數。

二進制轉十進制

Integer.valueOf("0101",2).toString()

import java.util.Scanner;

public class Test {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("輸入一個二進制數: ");

String a = sc.nextLine();

int d = Integer.parseInt(a, 2); // 2進制

int o = Integer.parseInt(a, 8); // 8進制

System.out.println("二進制轉為十進制: " + d);

System.out.println("八進制轉為十進制: " + o);

計算機內部使用二進製表示數

二進制與十進制的轉換是比較復雜的。比如我們要讓計算機計算50+50=?,那麼首先要把十進制的50轉換成二進制的「50」——110010,這個過程要做多次除法,而計算機對於除法的計算是最慢的。把十進制的50轉換成二進制的110010還不算完,計算出結果1100100之後還要再轉換成十進制數100,這是一個做乘法的過程,對計算機來說雖然比除法簡單,但計算速度也不快。

以上內容參考:網路-十進制

❽ Java中如何實現十進制到其他進制的轉換

Java轉換十進制為其他進制的兩種方法
利用printf():view plain to clipboardprint?
public class TigerNumberDemo {

public static void main(String[] args) {

// 輸出 19 的純喊搭十進製表示
System.out.printf("%d%n", 19);

// 輸出 19 的八進製表示
System.out.printf("%o%n", 19);

// 輸出 19 的十六進製表示
System.out.printf("做拿%x%n", 19);
}

}
public class TigerNumberDemo { public static void main(String[] args) { // 輸出 19 的十進製表示
System.out.printf("%d%n", 19); // 輸出 19 的八進製表示
System.out.printf("%o%n", 19); // 輸滲則出 19 的十六進製表示
System.out.printf("%x%n", 19);
}}
利用Integer類方法:view plain to clipboardprint?
public class NumberDemo {

public static void main(String[] args) {

// 十進制 19 轉成二進制 10011
System.out.println(Integer.toBinaryString(19));

// 十進制 19 轉成十六進制 13
System.out.println(Integer.toHexString(19));

// 十進制 19 轉成八進制 23
System.out.println(Integer.toOctalString(19));

}

}

❾ 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中如何將十進制數字轉化成二進制

如果表達小於2^31-1的正數代碼如下:

public void binaryToDecimal(int n){

int t = 0; //用來記錄位數

int bin = 0; //用來記錄最後的二進制數

int r = 0; //用來存儲余數

while(n != 0){

r = n % 2;

n = n / 2;

bin += r * Math().pow(10,t);

t++;

}

System.out.println(bin);

}

使用字元串的拼接(+)來實現大於2^31-1的數,代碼如下:

public void binaryToDecimal(int n){

String str = "";

while(n!=0){

str = n%2+str;

n = n/2;

}

System.out.println(str);

}

可以右移後再與0x01進行&運算得到第一位的數字判斷判斷它的第幾位上是0,第幾位上是1,代碼如下:

class ByteMove

{

public static void main(String[] args)

{

int i = 7;

move(i);

}

static void move(int num){

for(int i= 0;i<6;i++){

System.out.println("第"+(i+1)+"位:" + (num >> i & 0x01));

}

}

}

熱點內容
pythonlistintstr 發布:2025-05-18 00:48:18 瀏覽:604
輕應用緩存 發布:2025-05-18 00:31:02 瀏覽:251
鳥存儲空氣 發布:2025-05-18 00:20:24 瀏覽:201
linux刻錄iso 發布:2025-05-18 00:16:15 瀏覽:663
php動態參數 發布:2025-05-18 00:12:05 瀏覽:425
安卓應用上傳 發布:2025-05-18 00:11:57 瀏覽:803
數對的演算法 發布:2025-05-18 00:11:02 瀏覽:382
linuxwhile 發布:2025-05-18 00:10:08 瀏覽:144
xpftp外網 發布:2025-05-17 23:58:11 瀏覽:386
如何評價一個伺服器的性能 發布:2025-05-17 23:40:53 瀏覽:271