二进制数转字符串

二进制数转字符串。给定一个介于 0 和 1 之间的实数(如 0.72),类型为 double,打印它的二进制表达式。如果该数字无法精确地用 32 位以内的二进制表示,则打印“ERROR”。

  • 输入:0.625
    输出:”0.101”

  • 输入:0.1
    输出:”ERROR”
    提示:0.1 无法被二进制准确表示

1
2
3
4
5
6
7
8
9
10
var printBin = function(num) {
let ans = '0.'
while (num && ans.length <= 32) {
num = num * 2;
const k = num % 2 >> 0;
ans += k;
num -= k;
}
return ans.length > 32 ? 'ERROR' : ans;
};