当前位置:首页 » 操作系统 » 进制转换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));

}

}

}

热点内容
新闻压缩要素 发布:2025-05-17 22:22:11 浏览:118
耳机没有声音怎么办安卓 发布:2025-05-17 22:16:29 浏览:582
bc8android导航 发布:2025-05-17 22:15:50 浏览:638
什么配置的车标好 发布:2025-05-17 21:41:20 浏览:203
linux支持线程 发布:2025-05-17 21:26:14 浏览:184
元神队伍配置都由什么组成 发布:2025-05-17 21:20:18 浏览:477
闲鱼和安卓哪个赚钱 发布:2025-05-17 21:15:56 浏览:584
c语言一个c源程序 发布:2025-05-17 21:11:44 浏览:315
如何加密手机的文件 发布:2025-05-17 21:11:43 浏览:917
ios开发文件上传 发布:2025-05-17 21:10:40 浏览:984