精华内容
下载资源
问答
  • 展开全部下面是根据十进制数62616964757a686964616fe59b9ee7ad9431333365646331转二进制数的算法所写的一段Java程序示例代码:import java.math.BigDecimal;public class Test {public static void main(String[] ...

    展开全部

    下面是根据十进制数62616964757a686964616fe59b9ee7ad9431333365646331转二进制数的算法所写的一段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; i>0; 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

    展开全文
  • 十进制数转化成二进制数 */ public class TenToTwo{ public static void main(String[] args){ //创建Scanner对象 Scanner sc = new Scanner(System.in); System.out.print("请输入一个十进制数:"); int ...

    import java.util.Scanner;
    /*
        十进制数转化成二进制数    
    */

    public class TenToTwo{
        public static void main(String[] args){
            //创建Scanner对象
            Scanner sc = new Scanner(System.in);
            System.out.print("请输入一个十进制数:");
            int number = sc.nextInt();
            String str = "";
            while(number != 0){
                int i = number % 2;
                str = i + str;
                number = number / 2;
            }
            System.out.println(str);
            
        }
    }

    展开全文
  • java进制转二进制 并补足长度 /** * 十进制数转为2进制数 * @param num 十进制数 * @param size 返回的位数 (可以根据自己需求设置) * @return */ public static String decimalToBinary(int num, int ...

    java 十进制转二进制 并补足长度

     /**
         * 十进制数转为2进制数
         * @param num 十进制数
         * @param size 返回的位数 (可以根据自己需求设置)
         * @return
         */
        public static String decimalToBinary(int num, int size) {
            if (size <(Integer.SIZE - Integer.numberOfLeadingZeros(num))) {
                throw  new RuntimeException("传入size小于num二进制位数");
            }
            StringBuilder binStr = new StringBuilder();
            for(int i = size-1;i >= 0; i--){
                binStr.append(num >>> i & 1);
            }
            return binStr.toString();
        }
    
    

    文章出处

    展开全文
  • 我们看到所转换的2进制数按底位到高位的顺序产生的,而通常的输出是从高位到低位的,恰好与计算过程相反,因此转换过程中每得到一位2进制数则进栈保存,转换完毕后依次出栈则正好是转换结果。 请实现其算法。
  • 面试的时候被问到能否现场写一个进制转换的方法,比如10进制转16进制等. 内心戏: 卧槽,16进制是啥东西?满16进1位,但是怎么表示16呢?1,2,3,4,5,6,7,8,9,10,11,12,13,14,15?然后大于15就进一位? 我特么的连16进制是啥都...

    起因:

    面试的时候被问到能否现场写一个进制转换的方法,比如10进制转16进制等.

    内心戏:

    卧槽,16进制是啥东西?满16进1位,但是怎么表示16呢?1,2,3,4,5,6,7,8,9,10,11,12,13,14,15?然后大于15就进一位?
    我特么的连16进制是啥都不知道,写个鸡儿转16进制啊.
    面试官说,那你随便写个进制吧,10转2也行.

    内心戏02:

    10转2怎么转来着?然后开始快速回忆初中高中大学老师怎么是怎么讲10转2的.

    10进制转2进制:

    功夫不负有心人,我连蒙带猜知道了10转2的过程了.
    10÷2=5余0
    5÷2=2余1
    2÷2=1余0
    1÷2=0余1,
    余数从下到上连在一起便是结果:1010.

    核心代码如下:

    public String transJinZhi01(String str, int jinZhi) {
    
            assert str != null && str.length() > 0;
            assert jinZhi % 2 == 0 && jinZhi > 0;
            Stack<Object> objects = new Stack<>();
            //将字符串转成数字
            int num = Integer.valueOf(str);
            //第一次取余数
            int yuShu = num % jinZhi;
            //第一次的商,下面判断是否需要遍历
            int shang = num / jinZhi;
            objects.push(yuShu);
            do {
                yuShu = shang % jinZhi;
                shang = shang / jinZhi;
                objects.push(yuShu);
            } while (shang != 0);
    
            StringBuffer stringBuffer = new StringBuffer();
            while (!objects.empty()) {
                Object pop = objects.pop();
                stringBuffer.append(pop);
            }
            String s1 = stringBuffer.toString();
            System.out.println("数字" + str + "转化为" + jinZhi + "进制后为 = " + s1);
            return null;
        }
    
    

    测试代码如下:

        @Test
        public void test01() {
    
            //报错
    //        this.transJinZhi01(null, 10);
            //报错
    //        this.transJinZhi01("10", 1);
            //报错
    //        this.transJinZhi01("10", 0);
            //报错
    //        this.transJinZhi01("", 10);
            //正常
            this.transJinZhi01("1000", 2);
            this.transJinZhi01("1000", 8);
            this.transJinZhi01("1000", 10);
            //看源码怎么写的
    //        String s = Integer.toBinaryString(10);
    //        System.out.println("s = " + s);
        }
    

    运行结果是:

    数字1000转化为2进制后为 = 1111101000
    数字1000转化为8进制后为 = 1750
    数字1000转化为10进制后为 = 1000
    
    

    结束语:

    面试时粗略写的,想着趁着这个机会把这个完善下记录下来,也是自己的短板.
    此方法是10进制转2、4、8进制的方法,抛开效率讲是可行的,欢迎各位伙伴指正.
    我为啥不写任意进制转换呢?
    因为我没搞懂超过10进制后怎么表示呢…
    尴尬尴尬

    展开全文
  • java中的 String s= Integer.toBinaryString(number) 是一个很好用的API函数,如果你的number是正整数,则会自动转化为普通的原码,若是number是负数,则会转化为补码。如下例: 下面展示一些 内联代码片。 // 函数...
  • java十进制转换二进制

    2014-04-22 11:26:04
    java语言编写的十进制正数和负数转换二进制算法。
  • 输入一个十进制数可以转化成二进制,八进制,十六进制。.java格式的右键编辑可以打开。
  • JAVA十进制转二进制

    2021-01-15 17:33:05
    String result = Integer.toBinaryString(16); 记录一下,方便以后调阅
  • java十进制转二进制

    2015-05-15 10:36:39
    例如: 5的二进制转换方法为 5除以2 得余数1 然后再用商值2继续除以2 得余数0 然后除尽了商值为1 所以 最后得到二进制值为 101 public static void main(String[] args)  {  StringBuffer sbf = ...
  • 因为我们的机器返回的是二进制数据,在android端需要对这个二进制进行接收,但是这个二进制在接收的过程中被转换成了int数组接收显示的,所以需要我们另外写一个方法来进行还原 六种音源分别是 光纤,高电平,蓝牙...
  • 本文主要介绍了十进制转二进制十进制转八进制;十进制转十六进制的方法,具有很好的参考价值,下面跟着小编一起来看下吧
  • Java十进制转二进制可使用函数:toBinaryString(); 例: public void function1(int n){ String result = Integer.toBinaryString(n); System.out.println(result); }
  • Java十进制转换为二进制

    千次阅读 2021-02-09 15:42:59
    Java十进制二进制转换的3种不同方法。 1. Integer.toString()方法 我们可以使用Integer类的toString()方法将十进制数转换为二进制数。此方法有两个参数,第一个参数是十进制数,第二个参数是我们要转换的...
  • 进制转成十六进制:Integer.toHexString(int i)十进制转成八进制Integer.toOctalString(int i)十进制转二进制Integer.toBinaryString(int i)十六进制转十进制Integer.valueOf("FFFF",16).toString()八进制转成...
  • 十进制转二进制数,跟据不同的开发语言其转换方式有很多,在Java中如果相把一个十进制的整数来转换成二进制那是举手之劳,非常简单,只要用Integer.toBinaryString(int)方法就可以得到结果。但如果转换的不是一个...
  • Java本身提供了integer...public class exam{ //—————————————-// 此程序可将任意位十进制至九进制数,// 若超过十进制则不能保证正确.//—————————————-public static void main(...
  • 十进制转换成二进制的算法如下:1.给定一个数;2.根据十进制转换二进制的思想:把这个数除以2若为单数则为1,为偶数则为0,直到最后一个数为1为止。所以我们要做的就是用你给定的这个数除以2,如果结果为奇数则r=1...
  • 十进制转二进制代码

    2021-02-28 13:24:09
    睡不着 看了一下以前的博客 发现算法bug修复一下 2017年10月4日 01:38:44网上看到一个代码 很有意思大家可以看看public ...//如果该数字为负数,那么进行该负数+1之后的绝对值的二进制码的对应位取反,然后将它...
  • 最近由于工作上的需要,遇到进制转换的问题。涉及到的进制主要是 十进制,十六进制,二进制中间的转换。还包括了一个字节数组 与十六进制字符串的互相转换。估计遇到蓝牙通信的朋友,应该用的上。
  • 1.十进制转二进制 String s = Integer.toBinaryString(n) //将十进制数转成字符串,例如n=5 ,s = "101" 2.将字符串转成整形 int a = Integer.valueof("1002"); //当然s只能是数字类的字符串 或者 int a = ...
  • 十进制转二进制

    2021-03-19 09:30:31
    十进制转二进制 JAVA实现一、toBinaryString()方法利用Java自己封装的转换二进制静态方法直接转换。public static void main(String[] args) {String s = Integer.toBinaryString(7);int i = Integer.parseInt(s);...
  • 今天做题碰上一道其中需要十进制二进制之间的转换的问题。然后翻阅资料得知,在java中的integer类中就有一个方法可以实现这个操作,这个方法的名字是toBinaryString(),返回值类型是字符串。但是为了学好java,不...
  • 1.十进制整数转二进制 思路: 整数除以2,每次将余数保存起来,商循环除以2,直到商为0为止,然后将所有余数逆序打印出来。 例子: 23/2 商: 11 余数: 1 11/2 商: 5 余数: 1 5/2 商: 2 余数: 1 2/2 商: 1 余数:...
  • 虽然java库已经提供了转换方法,这里讨论用java语法写进制转换。 根据&的性质把转换的位数一位位输出即可。 class jinzhitrans { char []as={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};...
  • java_十进制数转换为二进制,八进制,十六进制数的算法
  • Java十进制转换为8位二进制(Java convert from decimal to 8-bit binary)我写了简单的java代码来从十进制转换为8位二进制:抱歉这个愚蠢的问题1 int dec=1;2 String result="";3 String reverse = "";4 while(dec!...
  • JAVA 实现十进制转二进制 方法汇总

    万次阅读 2018-12-25 21:08:37
    目录   一、方法引用 二、代码编写 ... //将n转化为二进制s,s是字符串 int a = Integer.valueOf(s); int b = Integer.parseInt(s); //这是两种将字符串转化为整形的方法,若n是31,结果都为11111...
  • JAVA 二进制 字符串 十进制 异常 抛出

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 137,977
精华内容 55,190
关键字:

java十进制转二进制

java 订阅
友情链接: ucon.tar.gz