这道C++题目该怎么做?

2024年12月04日 03:52
有2个网友回答
网友(1):

#include
using namespace std;
int main()
{
char a[8];
int b[3]={0};
int c[2]={0};
int i,t,k;
while(cin>>a)
{
for(i=0,t=0;i<8;i++)
{
if(i<2)
b[0]=b[0]*2+a[i]-48;
else if(i<5)
b[1]=b[1]*2+a[i]-48;
else
b[2]=b[2]*2+a[i]-48;
}
for(i=0,t=0;i<8;i++)
{
if(i<4)
c[0]=c[0]*2+a[i]-'0';
else
c[1]=c[1]*2+a[i]-'0';
}
for(i=0;i<3;i++)
cout< cout< for(i=0;i<2;i++)
cout< cout< }
return 0;
}

当我输入11111111时输出3 7 7
15 15

上面的我是用二进制的8位数。你可以改

十六进制的你可以自己在把它转化为字符型的

网友(2):

#include
using namespace std;

int main()
{
unsigned long input1,input2;
cin>>input1;
input2=input1;
int i,j;
char output1[50]="0",output2[50]="0x";
char *p1=output1+1,*p2=output2+2;
while(1)
{
if(input1==0&&input2==0)break;
if(input1/1000>=0)
{
*p1=input1%10+'0';
input1/=10;
*p1+=input1%10*2;
input1/=10;
*p1+=input1%10*4;
input1/=10;
p1++;
}
if(input2/10000>=0)
{
*p2=input2%10;
input2/=10;
*p2+=input2%10*2;
input2/=10;
*p2+=input2%10*4;
input2/=10;
*p2+=input2%10*8;
input2/=10;
if(*p2>=10)*p2+='a'-10;
else *p2+='0';
p2++;
}
}
cout<<"0";
while(p1!=output1+1)cout<<*(--p1);
cout< cout<<"0x";
while(p2!=output2+2)cout<<*(--p2);
cout< return 0;

}