Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
62902 彭林江 十进制小数转二进制 C++ Accepted 1 MS 272 KB 707 2023-12-30 15:25:44

Tests(10/10):


Code:

#include<bits/stdc++.h> using namespace std; int main(){ double n; cin >> n; if(n == 0){ cout << 0; return 0; } int z = n; // 得到整数 if(z == 0){ cout <<0; } double x = n-z; // 得到小数 // 第一步:处理整数 int len = 0; int yu[32]; while(z != 0){ // 只要整数不为0,除二取余 yu[len++] = z % 2; z /= 2; } // 然后再将得到的余数逆序输出 for(int i = len - 1; i >= 0; i--){ cout << yu[i]; } // 第二步:处理小数 if(x == 0){ return 0; } else{ cout << "."; } for(int i = 0; i < 9; i++){ x *= 2; int xz = x; cout <<xz; x -= xz; if(x == 0){ break; } } return 0; }