なぜ例外が発生するのですか
Unhandled exception at 0x00000001 in TestingCOA.exe: 0xC0000005: Access violation (parameters: 0x00000008).
4294967295 以上の数値で作業しようとすると。私のマシンでsizeof
は double は数値8bytes
を処理して操作できるはずですが2^64 -1
、32 ビット数値の例外を生成しています。なぜですか?
int main()
{
double n,remainderA;
int AfterDecimal1[64],RemExponent1;
cout<< "Enter number\n";
cin>> n;
remainderA=a-(int)a;
HandleFractionNumber(remainderA,AfterDecimal1,RemExponent1);
}
int HandleFractionNumber(double remainder,int (&Goku)[64],int &RemExponent)
{
int x=0;
for(int i=0;;i++)
{
remainder*=2;
if(remainder>1)
{
remainder-=1;
Goku[x]=1;
x++;
}
else
if(remainder<1)
{
Goku[x]=0;
x++;
}
if(remainder==1)
{
Goku[x]=1;
break;
}
RemExponent=x;
}