使用循环分别实现将10进值整数和小数变成二进制数(Java)

    技术2023-07-31  108

    public void test6(){ /*使用循环分别实现将10进值整数和小数变成二进制数*/ /*转整数部分为二进制  * 十进制整数转换为二进制整数采用"除2取余,逆序排列"法。  * 具体做法是:用2去除十进制整数,可以得到一个商和余数  * ;再用2去除商,又会得到一个商和余数,如此进行,直到商为零时为止,  * 然后把先得到的余数作为二进制数的低位有效位,  * 后得到的余数作为二进制数的高位有效位,依次排列起来。   *   * 10/2 =5   余数0   * 5/2=2   余数 1  * 2/2=1    0  * 1/2=0    1    * */      int num =5;     String str="";     while(num/2!=0){     int yushu = num%2;             str =yushu+str;   //"0" +"1"     num = num/2;     }     str = num+str;     System.out.println(str);         }

    @Test public void test7(){ /*转小数部分为2进制  * 十进制小数转换成二进制小数采用"乘2取整,顺序排列"法。具体做法是:  * 用2乘十进制小数,可以得到积,将积的整数部分取出,再用2乘余下的小数部分,  * 又得到一个积,再将积的整数部分取出,如此进行,直到积中的小数部分为零,  * 或者达到所要求的精度为止。 然后把取出的整数部分按顺序排列起来, * 先取的整数作为二进制小数的高位有效位,后取的整数作为低位有效位  * */

    double d = 0.8125;      //  1.625    1      double ji = d*2; String str="0."; while((ji-(int)ji)!=0){                      str = str+(int)ji;     ji = (ji-(int)ji)*2;     }     str = str+(int)ji;     System.out.println(str);         }  

    Processed: 0.012, SQL: 9