java中十进制转二进制

Integer.toBinaryString(10)直接转换十进制为二进制
Long.toBinaryString(10L)直接转换十进制为二进制

float和double的十进制转换二进制方法
整数部分:除以2,取出余数,商继续除以2,直到得到0为止,将取出的余数逆序;
小数部分:乘以2,然后取出整数部分,将剩下的小数部分继续乘以2,然后再取整数部分,一直取到小数部分为零为止。如果永远不为零,则按要求保留足够位数的小数,最后一位做0舍1入。将取出的整数顺序排列。

例如10.6
整数部分:
10/2 5 余 0
5/2 2 余 1
2/2 1 余 0
1/2 0 余 1

整数部分为: 1010

小数部分:
0.6 * 2 = 1.2 1 ---------- 0.2
0.2 * 2 = 0.4 0 -----------0.4
0.4 * 2 = 0.8 0 -----------0.8
0.8 * 2 = 1.6 1 -----------0.6

0.6 * 2 = 1.2 1 ---------- 0.2
0.2 * 2 = 0.4 0 -----------0.4
0.4 * 2 = 0.8 0 -----------0.8
0.8 * 2 = 1.6 1 -----------0.6

小数位计算出现了循环 1001 1001 1001 …

10.6的完整二进制表示方法: 1010.1001 1001 1001 …

猜你喜欢

转载自blog.csdn.net/zhanglinlove/article/details/83115284