二进制转换器

一个由ai开发的转换器,可将二进制转为十进制

        
            #include <iostream>
            #include <string>
            #include <algorithm>
            using namespace std;

            // 函数用于将十进制整数部分转换为二进制
            string integerToBinary(long long integerPart) {
                if (integerPart == 0) return "0";
                string binaryStr;
                while (integerPart > 0) {
                    binaryStr += (char)('0' + (integerPart & 1));
                    integerPart >>= 1;
                }
                reverse(binaryStr.begin(), binaryStr.end());
                return binaryStr;
            }

            // 函数用于将十进制小数部分转换为二进制,这里设定精度为64位小数(可按需调整)
            string fractionToBinary(double fractionPart) {
                string binaryStr;
                int precision = 64;  // 控制小数转换的精度,避免无限循环
                while (fractionPart > 0 && precision > 0) {
                    fractionPart *= 2;
                    int bit = (int)fractionPart;
                    binaryStr += (char)('0' + bit);
                    fractionPart -= bit;
                    precision--;
                }
                return binaryStr;
            }

            // 主函数整合整数和小数部分的转换,实现完整的十进制转二进制
            string decimalToBinary(long long integerPart, double fractionPart) {
                string integerBinary = integerToBinary(integerPart);
                string fractionBinary = fractionToBinary(fractionPart);
                if (!fractionBinary.empty()) {
                    return integerBinary + "." + fractionBinary;
                }
                return integerBinary;
            }

            int main() {
                long long integerPart;
                char dot;
                cout << "请输入一个十进制数(整数或有限小数): ";
                cin >> integerPart >> dot >> fractionPart;
                cout << "对应的二进制数为: " << decimalToBinary(integerPart, fractionPart) << endl;
                return 0;
            }