如何在此输出中的每四个字符之间放置一个空格?

时间:2014-10-10 15:24:27

标签: c++ binary space

我正在编写一个程序,我必须显示各种数据类型的二进制表示。我需要二进制输出在每四个数字后有一个空格。例如:

0011 1111 1000 1110 1011 1000 0101 0010

以下是我用来显示二进制代码的函数示例。使用空格格式化输出的最佳方法是什么?

void printChar(char testChar)
{
    unsigned char mask = pow(2, ((sizeof(char) * 8) - 1));

    cout << "The binary representation of " << testChar << " is ";
    for (int count = 7; count >= 0; count--)
    {
        if ((testChar & mask) != 0)
        {
            cout << "1";
        }
        else
        {
            cout << "0";
        }
        mask = (mask >> 1);
    }
    cout << endl;
}

2 个答案:

答案 0 :(得分:2)

你已经有一个计数器,所以你可以用它来确定你所在的角色。例如:

if(count == 3){

    cout << " ";
}

只需在if声明之前添加此if-else即可。这样,一旦输出4个字符,count将为3,所以你知道你必须输出一个空格。

注意:假设您一次只输出8个字符,正如您的代码所示。

答案 1 :(得分:0)

void printChar(char testChar) { 
unsigned char mask = pow(2, ((sizeof(char) * 8) - 1));

//Use an index to store the character number in the current set of 4
unsigned int index = 0;

cout << "The binary representation of " << testChar << " is ";
for (int count = 7; count >= 0; count--)
{
    if ((testChar & mask) != 0)
    {
        cout << "1";
    }
    else
    {
        cout << "0";
    }
    mask = (mask >> 1);

    index++;
    if(index == 4){
        cout << " ";
        index = 0;
    }

}
cout << endl;
}