字符串面试题 05.02. 二进制数转字符串
Posted ocpc
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串面试题 05.02. 二进制数转字符串相关的知识,希望对你有一定的参考价值。
题目:
解答:
根据常规十进制小数转二进制小数的方法进行转化;十进制的小数转换为二进制,主要是小数部分乘以2,取整数部分依次从左往右放在小数点后,直至小数点后为0。
例如:十进制的0.125,要转换为二进制的小数。
(1)0.125 x 2 = 0.25 ==> 0
(2)0.25 x 2 = 0.5 ==> 0
(3)0.5 x 2 = 1 ==> 1,这时小数点后的数均为0,结束循环;
(4)结果为:0.001
1 class Solution { 2 public: 3 string printBin(double num) 4 { 5 string res = "0."; 6 7 // 若 "0." 计为两位,i 初始化为 30,若计为 1 位,初始化为 31 8 int i = 30; 9 10 while (num > 0 && i--) 11 { 12 num *= 2; 13 if (num >= 1) 14 { 15 res.push_back(‘1‘); 16 --num; 17 } 18 else 19 { 20 res.push_back(‘0‘); 21 } 22 } 23 return num != 0 ? "ERROR" : res; 24 } 25 };
以上是关于字符串面试题 05.02. 二进制数转字符串的主要内容,如果未能解决你的问题,请参考以下文章
#yyds干货盘点# LeetCode程序员面试金典:二进制数转字符串