Java中如何实现十进制到其他进制的转换

Java中如何实现十进制到其他进制的转换,第1张

下面是转换的方法

int n1 = 14;

//十进制转成十六进制:

IntegertoHexString(n1);

//十进制转成八进制

IntegertoOctalString(n1);

//十进制转成二进制

IntegertoBinaryString(12);

//十六进制转成十进制

IntegervalueOf("FFFF",16)toString();

//十六进制转成二进制

IntegertoBinaryString(IntegervalueOf("FFFF",16));

//十六进制转成八进制

IntegertoOctalString(IntegervalueOf("FFFF",16));

//八进制转成十进制

IntegervalueOf("576",8)toString();

//八进制转成二进制

IntegertoBinaryString(IntegervalueOf("23",8));

//八进制转成十六进制

IntegertoHexString(IntegervalueOf("23",8));

//二进制转十进制

IntegervalueOf("0101",2)toString();

//二进制转八进制

IntegertoOctalString(IntegerparseInt("0101", 2));

//二进制转十六进制

IntegertoHexString(IntegerparseInt("0101", 2));

public class test {

public static void main(String[] args) {

String m = IntegertoBinaryString(120);

Systemoutprintln(m);

}

}

--------------------------------

public class test {

public static void main(String[] args) {

int m = 13;

String s = "";

while (m > 0) {

s = m % 2 + s;

m = m / 2;

}

Systemoutprintln(s);

}

}

首先16进制里面a代表的是10b 代表11,f代表15

16进制就是每16进1

然后利用这个 原理。得到如下代码。经测试,下边代码两次输出的结果是相同的。

public class test1 {

public static void main(String[] args) {

String str="aabbcc";

String myStr[]={"a","b","c","d","e","f"};

int result=0;

int n=1;

for(int i=strlength()-1;i>=0;i--){

String param=strsubstring(i,i+1);

for(int j=0;j<myStrlength;j++){

if(paramequalsIgnoreCase(myStr[j])){

param="1"+StringvalueOf(j);

}

}

result+=IntegerparseInt(param)n;

n=16;

}

Systemoutprintln(result);

Systemoutprintln(IntegerparseInt(str, 16));

}

}

还有给的分太少啦。。。

private static String hexString = "0123456789ABCDEF";

public static void main(String[] args) {

    Systemoutprintln(encode("中文"));

    Systemoutprintln(decode(encode("中文")));

}

/

  将字符串编码成16进制数字,适用于所有字符(包括中文)

 /

public static String encode(String str) {

    // 根据默认编码获取字节数组

    byte[] bytes = strgetBytes();

    StringBuilder sb = new StringBuilder(byteslength  2);

    // 将字节数组中每个字节拆解成2位16进制整数

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

    sbappend(hexStringcharAt((bytes[i] & 0xf0) >> 4));

    sbappend(hexStringcharAt((bytes[i] & 0x0f) >> 0));

    }

    return sbtoString();

}

 

/

  将16进制数字解码成字符串,适用于所有字符(包括中文)

 /

public static String decode(String bytes) {

    ByteArrayOutputStream baos = new ByteArrayOutputStream(byteslength() / 2);

    // 将每2位16进制整数组装成一个字节

    for (int i = 0; i < byteslength(); i += 2)

    baoswrite((hexStringindexOf(bytescharAt(i)) << 4 | hexString

                    indexOf(bytescharAt(i + 1))));

    return new String(baostoByteArray());

}

亲测可行,支持中文!!!

有用请记得采纳

public class Main {

public static void main(String[] args) {

int integer = 127; //十进制数

String binary = IntegertoBinaryString(integer);

Systemoutprintln("Binary value of " + integer + " is " + binary + "");

int original = IntegerparseInt(binary, 2);

Systemoutprintln("Integer value of binary '" + binary + "' is " + original + "");

}

}

java进制转换

java中进行二进制,八进制,十六进制,十进制间进行相互转换

十进制转成十六进制:

IntegertoHexString(int i)

十进制转成八进制

IntegertoOctalString(int i)

十进制转成二进制

IntegertoBinaryString(int i)

十六进制转成十进制

IntegervalueOf("FFFF",16)toString()

八进制转成十进制

IntegervalueOf("876",8)toString()

二进制转十进制

IntegervalueOf("0101",2)toString()

十进制数转二进制数的算法如下:

1 十进制整数转换为二进制整数

十进制整数转换为二进制整数采用"除2取余,逆序排列"法。具体做法是:用2去除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余

数,如此进行,直到商为零时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。

2.十进制小数转换为二进制小数

十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,又

得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,或者达到所要求的精度为止。然后把取出的整数部分按顺序排列起来,先取的整数作为

二进制小数的高位有效位,后取的整数作为低位有效位。

下面就给出根据十进制数转二进制数的算法所写的一段Java程序以供大家参考:

import javamathBigDecimal;

public class Test {

public static void main(String[] args) {

Test t = new Test();

double d = 8;

String s = tdecimal2BinaryStr(d);

Systemoutprintln("十进制数"+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 IntegertoBinaryString((int)d);

/

本来利用上面的IntegertoBinaryString(int)就可以得到整数部分的二进制结果,

但为了展示十进制转二进制的算法,现选择以下程序来进行转换

/

String result = "";

long inte = (long)d;

int index = 0;

while(true){

result += inte%2;

inte = inte/2;

index++;

if(index%4 == 0){

result+=" ";

}

if(inte==0){

while(index%4!=0){

result+="0";

index++;

}

break;

}

}

char[] c = resulttoCharArray();

char[] cc = new char[clength];

for(int i=clength; i>0; i--){

cc[cclength-i] = c[i-1];

}

return new String(cc);

}

/

十进制小数部分转二进制

@param d 十进制数

@return 十进制小数部分转换成二进制小数的字符串

/

public String decimal2BinaryStr_Deci(double d){

return decimal2BinaryStr_Deci(d, 0);

}

/

十进制小数部分转二进制

@param d 十进制数

@param scale 小数部分精确的位数

@return 十进制小数部分转换成二进制小数的字符串

/

public String decimal2BinaryStr_Deci(double d, int scale){

double deci = sub(d,(long)d);

if(deci==0){

return "";

}

//为了防止程序因所转换的数据转换后的结果是一个无限循环的二进制小数,因此给其一个默认的精确度

if(scale==0){

scale = (StringvalueOf(deci)length()-2)4;

}

int index = 0;

StringBuilder inteStr = new StringBuilder();

double tempD = 0d;

while(true){

if(deci==0 || index==scale){

while(index%4!=0){

inteStrappend("0");

index++;

}

break;

}

if(index==0){

inteStrappend("");

}

tempD = deci2;

inteStrappend((int)tempD);

deci = sub(tempD ,(int)tempD);

index++;

if(index%4 == 0){

inteStrappend(" ");

}

}

return inteStrtoString();

}

/

提供精确的减法运算。

@param v1 被减数

@param v2 减数

@return 两个参数的差

/

public static double sub(double v1, double v2) {

BigDecimal b1 = new BigDecimal(DoubletoString(v1));

BigDecimal b2 = new BigDecimal(DoubletoString(v2));

return b1subtract(b2)doubleValue();

}

}

例如将十进制数12345转成二进制数为:0100 1101 00101000

以上就是关于Java中如何实现十进制到其他进制的转换全部的内容,包括:Java中如何实现十进制到其他进制的转换、JAVA中的十进制转换为二进制、用java写一个16进制转10进制算法的程序!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10063632.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存