首页 > 代码库 > 022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)
022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)
给定一个字符串类型(string)表示的小数,打印出它的二进制表示。
这个题注意字符串的合法性。
不过下面的代码没有处理那种无限循环的小数,
这个题注意字符串的合法性。
不过下面的代码没有处理那种无限循环的小数,
当出现无限循环小数时,while(other>0)可能永久为true
代码:
#include <iostream> #include <string> std::string to_binary_string(const std::string& vNumStr) { std::string::size_type Pos = vNumStr.find('.'); std::string IntPart = vNumStr.substr(0, Pos); std::string OtherPart = vNumStr.substr(Pos, vNumStr.length()-Pos); if (IntPart != "") { int Num = atoi(IntPart.c_str()); IntPart = ""; while (Num) { if (Num&1) IntPart = "1" + IntPart; else IntPart = "0" + IntPart; Num >>= 1; } } if (OtherPart.size() > 1) { int Other = atof(OtherPart.c_str()); OtherPart = ""; while (Other>0) { Other *= 2; if (Other>=1) { OtherPart += "1"; Other -= 1; } else { OtherPart += "0"; } } } return OtherPart.size() > 1 ? IntPart + OtherPart : IntPart; }
022给定一个字符串类型(string)表示的小数,打印出它的二进制表示(keep it up)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。