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 …