이게 계속 생각하다 보니까 결국은 long double 안쓰고 double 두개 더한 값을 오버플로우없이 보존하는건데
long int 이런거에다가 memcopy해서 double 값을 집어넣는걸 생각중인데
long int a,lint1,lin2;
double op1,op2;
memcopy(&lint1,&op1,sizeof(double));
memcopy(&lint2,&op2,sizeof(double));
a=lint1+lint2;
하면 어떻게됨? 비트들이 정수표현형으로 다 바뀔거같은데
a=(double)lint1+(double)lint2;
이렇게하면 되나?
너님좀고수인듯
정석대로해보지그래?
해보는게 너한트 도움된다 하기싫으면 이쪽이랑 안맞는것
꼼수로 흥한자 꼼수때매 망한다
long int = long
ㄴ 정석이 뭐임? 정석 있으면 좀 알려주세요
ISO C 9899 6.3.1.1 참조. The rank of long long int shall be greater than the rank of long int, which shall be greater than the rank of int, which shall be greater than the rank of short int, which shall be greater than the rank of signed char
long int 가 아니라 long long 이겠지
아 long이 아니라 long long인데 잘못씀
미안 내가 글 내용을 잘못 봤다. int64 얘기가 아니었네.
정석은 double이 어던식으로 저장되는지를 알아시 그것을 확장해야지
double이 어떤식으로 저장되는진 아는데 확장을 어떻게 할지는 감이 전혀안옴 그래서 생각한게 double의 비트값들을 고스란힌 보존해서 그걸 더하거나 곱한걸 char[16]안으로 옮기는거였는데