我试图做的作业已经过了截止日期,所以你没有做我的作业。
为了学习,我想知道如何做一些事情。
我能够制作一个程序,使用按位运算符的掩码以二进制形式打印出 1-32。
我使用的掩码的问题是它还会打印出 32 个前导零,后跟二进制数(例如,0000000000000000000000000000000001 表示数字 1)
这就是我所拥有的
# include <iostream>
#include <string>
using namespace std;
string naiveBitToChar( int num )
{
string st;
unsigned mask = 0x80000000;
if( num == 0 )
{
return "0";
}
while( ( num & mask ) )
mask >>= 1;
do
{
if ( num & mask )
{
st = st + "1";
}
else
{
st = st + "0";
}
mask >>= 1;
}
while( mask );
return st;
}
int main ( int argc, char* argv[] ) {
argc; argv;
for( int i = 0; i < 32; i++ )
cout << naiveBitToChar(i) << "\n";
system ("pause");
}
我需要:
- 从字符串中删除前导零
- 在每个字符串中添加至少 8 个数字的宽度(例如 00000010)
- 通过使用分隔符掩码(例如 0000_1000)在每 4 个数字后添加下划线
我是 C++ 新手,我的老师甚至不会看我的代码,请有人解释一下,并尽量保持基本。谢谢!