0
私はこの16進数コンバータを使用していましたが、プログラムのどこかに論理エラーがあるようです。私はg ++ツールを使ってUbuntu上で実行しました。そして、私はtプログラムを実行するたびに、私に大量のガベージ・ヒープを与えます。私はガベージ値のソースを把握することはできませんし、どちらも論理エラーの原因を見つけることはできません。私はプログラミングの初心者ですので、私の間違いを理解するのを助けてください。C++の論理エラー16進数コンバータコード
#include <iostream>
#include <math.h>
using namespace std;
int main()
{
int bin[20],finhex[10],num,bc=0,i,j,k,l=0,r=10,n=1,binset=0,m=0;
int hex[16]= {0000,0001,0010,0011,0100,0101,0110,0111,1000,1001,1010,1011,1100,1101,1110,1111};
char hexalph='A';
cout<<"\nEnter your Number: ";
cin>>num;
while(num>0)
{
bin[bc]=num%2;
num=num/2;
bc++;
}
if(bc%4!=0)
bc++;
for(j=0;j<bc/4;j++)
for(i=0;i<4;i++)
{
binset=binset+(bin[m]*pow(10,i));
m++;
}
for(k=0;k<16;k++)
{
if(hex[k]==binset)
{
if(k<=9)
finhex[l]=k;
else
while(n>0)
{
if(k==r)
{
finhex[l]=hexalph;
break;
}
else
{
hexalph++;
r++;
}
}
l++;
r=10;
binset=0;
hexalph='A';
break;
}
}
while(l>=0)
{
cout<<"\n"<<finhex[l];
l--;
}
return 0;
}
@ user64322ここで私を助けてください。 –