题目描述:
给定一个介于0和1之间的实数,(如0.625),类型为double,打印他的二进制表示(0.101),如果该数字无法精确地用32位以内地二进制表示, 则打印“ERROR”
分析:
因为二进制左移是乘二,右移是除二,0.101(二进制)也就是0.5+0.125=0.625
浮点数求二进制实际上就是除二取余的逆运算,先把原数乘二,0.625*2=1.25,小数点前面有1,就把那个1干掉,输出0.1,剩下0.25,再乘二等于0.5不足1,故在后面加0,这时输出为0.10,0.5再乘二恰好是1.0那么同上干掉1,输出为0.101
import java.util.*;
public class Main {
public static