@Test
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);
}
使用循环分别实现将十进制整数和小数变成二进制数
最新推荐文章于 2022-10-30 00:36:45 发布