2013-11-26 3 views
0

128 비트의 새로운 부동 소수점 유형을 만들고 싶습니다. 지수는 4 바이트 (32 비트)이고 소수는 12 바이트 (96 비트)이고, 어떻게 이 형식을 C++로 만들 수 있습니다. 여기서 입력, 출력, +, -, *,/연산을 수행 할 수 있습니다.새로운 부동 소수점 숫자

[I 클래스 C++ 생각하고하지만 난 지정된 길이 지수와 분수 사이에 옴 방법을 알아낼 수 없습니다] 내가 시도

"비트 세트"표준 클래스,하지만 거대한 크기를 가지고 예를 들어 필요한 것과 비교하여 "std :: bitset < 16> foo;" 크기는 8 바이트입니다.

제안 사항!

+4

새 char [16]이고 길이가 128 비트 인 비트 필드가 있습니다. – erenon

+0

_ ' "std :: bitset <16> foo;" 8 바이트의 크기를주세요. '포인터의 크기를 확인 했습니까 ?? 몇 가지 코드를 보여주십시오! –

+0

당신을 interess 수 있음 : http://stackoverflow.com/questions/4798777/is-there-a-c-equivalent-to-javas-bigdecimal – Paranaix

답변

1

사용자 고유의 데이터 유형을 빌드하고이를 사용하여 수행하려는 모든 조작을 구현해야합니다. 이는 아키텍처가 32 비트 데이터 만 지원할 때 컴파일러가 64 비트 데이터 세트를 에뮬레이트하는 방식입니다.

두 멤버가있는 클래스/구조체가 올바른 시작점입니다. 이제 기본 작업을 구현해야합니다 : +, -, *, /. 추가 및 하위 쉽게, 당신은 * 및 /에 더 많은 관심을 기울여야합니다. 내가 말할 수있는 것은 대개 컴파일은 반복되는 add 및 sub 작업을 사용하여 이들을 구현한다는 것입니다.

+0

고마워요, 이것에 대해 이야기하는 종이 또는 웹 사이트 페이지로 나를 도울 수 있습니까? 적절한 하나를 찾는 데 많은 도움이되었습니다. – user3038489

+0

@ user3038489 : 다른 부동 소수점의 일부 예제에 대해 "IEEE 부동 소수점 형식"으로 검색하십시오. 형식. –

관련 문제