実数を2進数表記する
問題
double型の0から1の実数を2進数表記する。
考え方
簡単な例として0.5は2進数では0.1とかける。
つまり、2倍して1のくらいが1になれば1を立てる。
コード例
#include<iostream> #include<string> using namespace std; string bitRep(double x){ string ans = "0."; while(x!=0){ if(ans.length()==34)return "Error!"; x = x*2; if(x>=1){ ans.append("1"); x--; }else{ ans.append("0"); } } return ans; } int main(void){ double x = 0.75; string ans; ans = bitRep(x); cout << ans << endl; return 0; }