将十六进制转换为二进制函数,增加附加值

时间:2018-09-25 04:52:49

标签: c++

ConvertHexToBinary函数返回正确的二进制字符串。...后面紧跟一串额外的0和1s

不能弄清楚为什么要增加额外的费用。

#include<iostream>
#include<vector>
#include<string>
#include<sstream>

using namespace std;

string ConvertHexToBinary(string str) {
    string ToReturn;
    for (int i = 2; i < str.size(); i++) {
        switch (str[i]) {
        case '0':
            ToReturn.append("0000");
        case '1':
            ToReturn.append("0001");
        case '2':
            ToReturn.append("0010");
        case '3':
            ToReturn.append("0011");
        case '4':
            ToReturn.append("0100");
        case '5':
            ToReturn.append("0101");
        case '6':
            ToReturn.append("0110");
        case '7':
            ToReturn.append("0111");
        case '8':
            ToReturn.append("1000");
        case '9':
            ToReturn.append("1001");
        case 'A':
            ToReturn.append("1010");
        case 'B':
            ToReturn.append("1011");
        case 'C':
            ToReturn.append("1100");
        case 'D':
            ToReturn.append("1101");
        case 'E':
            ToReturn.append("1110");
        case 'F':
            ToReturn.append("1111");
        }
    }
    return ToReturn;
}


int main()
{
    int x = 25;
    int *p = &x;

    cout << p << endl;

    std::ostringstream str;
    str << p;
    std::cout << str.str() << endl;

    cout << ConvertHexToBinary(str.str()) << endl;
}

0 个答案:

没有答案