本文主要是介绍二进制数转字符串,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接
二进制数转字符串
题目描述
注意点
- 32位包括输出中的 “0.” 这两位
- 题目保证输入用例的小数位数最多只有 6 位
解答思路
- 将小数转为二进制的思路是将小数乘2,如果整数部分为1,则说明第i位是1(第i位则乘了2的几次方),否则说明第i位是0,循环该过程直到num为0或者字符串长度大于32(题目要求数字无法精确地用32位以内的二进制表示,则打印“ERROR”)
代码
class Solution {public String printBin(double num) {StringBuilder sb = new StringBuilder("0.");while (sb.length() <= 32 && num != 0) {num *= 2;if (num < 1) {sb.append("0");} else {sb.append("1");num -= 1;}}return num == 0 ? sb.toString() : "ERROR";}
}
关键点
- 小数转为二进制的思路
这篇关于二进制数转字符串的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!