我正在编写一个程序,我必须显示各种数据类型的二进制表示。我需要二进制输出在每四个数字后有一个空格。例如:
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;
}
答案 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;
}