java十进制转二进制代码怎么解决?
下面是根据十进制数转二进制数的算法所写的一段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);
/*
* 本来利用上面的Integer.toBinaryString(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 = result.toCharArray();
char[] cc = new char[c.length];
for(int i=c.length; i0; i--){
cc[cc.length-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 = (String.valueOf(deci).length()-2)*4;
}
int index = 0;
StringBuilder inteStr = new StringBuilder();
double tempD = 0.d;
while(true){
if(deci==0 || index==scale){
while(index%4!=0){
inteStr.append("0");
index++;
}
break;
}
if(index==0){
inteStr.append(".");
}
tempD = deci*2;
inteStr.append((int)tempD);
deci = sub(tempD ,(int)tempD);
index++;
if(index%4 == 0){
inteStr.append(" ");
}
}
return inteStr.toString();
}
/**
* 提供精确的减法运算。
* @param v1 被减数
* @param v2 减数
* @return 两个参数的差
*/
public static double sub(double v1, double v2) {
BigDecimal b1 = new BigDecimal(Double.toString(v1));
BigDecimal b2 = new BigDecimal(Double.toString(v2));
return b1.subtract(b2).doubleValue();
}
}
例如将十进制数1234.5转成二进制数为:0100 1101 0010.1000
求java进制转换代码
下面是转换的方法
int
n1
=
14;
//十进制转成十六进制:
Integer.toHexString(n1);
//十进制转成八进制
Integer.toOctalString(n1);
//十进制转成二进制
Integer.toBinaryString(12);
//十六进制转成十进制
Integer.valueOf("FFFF",16).toString();
//十六进制转成二进制
Integer.toBinaryString(Integer.valueOf("FFFF",16));
//十六进制转成八进制
Integer.toOctalString(Integer.valueOf("FFFF",16));
//八进制转成十进制
Integer.valueOf("576",8).toString();
//八进制转成二进制
Integer.toBinaryString(Integer.valueOf("23",8));
//八进制转成十六进制
Integer.toHexString(Integer.valueOf("23",8));
//二进制转十进制
Integer.valueOf("0101",2).toString();
//二进制转八进制
Integer.toOctalString(Integer.parseInt("0101",
2));
//二进制转十六进制
Integer.toHexString(Integer.parseInt("0101",
2));
用java编程实现进制转换,本人初学者,希望大佬给个容易看懂的代码?
import java.util.Stack;
/**
* author: liu jun bao
* date: 2020/2/28
* desc:
*/
public class Test {
public static void main(String[] args) {
Integer a = 300;
Integer b = 8;
BinaryConversion(a, b);
}
/**
*
* @param a 要转化的十进制数
* @param b 要转化的进制
* 该方法输出转化结果
*/
private static void BinaryConversion(Integer a, Integer b) {
Stack stack = new Stack();
while (a != 0){
stack.push(a%b);
a=a/b;
}
while (!stack.empty()){
System.out.print(stack.pop());
}
}
}
java代码实现:十进制转换成2进制
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
@SuppressWarnings("unchecked")
public class FileUtil implements Comparator{
public static void main(String[] args) throws Exception{
File file = new File("f:/f1.txt");
BufferedReader br = new BufferedReader(new FileReader(file));
String rl = null;
StringBuffer bf = new StringBuffer();
StringBuffer num2 = null;
int num10 = 0;
while(( rl = br.readLine()) != null)
{
rl = rl.trim();
num10 = Integer.parseInt(rl);
num2 = new StringBuffer();
while(num10 0){
num2.insert(0, num10%2);
num10 /=2;
}
bf.append(num2).append("\r\n");
}
br.close();
BufferedWriter out = new BufferedWriter(new FileWriter(new File("f://f2.txt")));
out.write(bf.toString());
out.flush();
out.close();
}
public int compare(Object a1, Object a2)
{
String s1 = (String)a1;
String s2 = (String)a2;
for(int i=0; i(Math.min(s1.length(), s2.length())); i++)
{
if(s1.charAt(i) s2.charAt(i))
return 1;
else if(s1.charAt(i) s2.charAt(i))
return -1;
}
return s1.length()s2.length()?1:(s1.length()s2.length()?-1:0);
}
}
用JAVA将十进制转换成十六进制
1、用Integer.toHexString方法即可将十进制装成十六进制。
package com.test;
public class Test {
public static void main(String[] args) {
int i = 123;
System.out.println(Integer.toHexString(i));
}
}
2、运行结果如下十进制的123转化成十六进制的7b
3、Integer.toHexString方法返回的结果是字符串。
4、直接表达16进制,在JAVA里面可以在数字前加"0x",像这样
int j = 0x7b;
System.out.println(Integer.decode("0x7b"));
网站题目:java转换进制的代码 编程转换进制
文章路径:http://cqwzjz.cn/article/hjhdeh.html