2012-01-03 3 views
1

나는 일반적인 아이디어를 찾고있다. IEEE float 또는 double이 저장되는 방법을 알고 있지만 정확하게 곱하는 방법을 알지 못합니다.변환 지시없이 정수를 IEEE double로 곱하는 방법은 무엇입니까?

정수 하나를 float 레지스터에 double으로 저장 한 다음 일반 double 곱하기 명령을 사용하는 것이 좋습니다.

IEEE double을 정수로 멀티 플라이 할 때 어떤 특성이 있습니까? "지수를 곱해야만한다"또는 이와 비슷한 것처럼?

도움을 주시면 감사하겠습니다.

+0

이 http://www.divms.uiowa.edu/~jones/bcd/divide.html은 여러분이하려는 일에 따라 유용 할 수 있습니다. 애플리케이션에 IEEE 형식이 필요하지 않을 수도 있습니다. 지능 지수를 추적하고 전체를 가수로 사용하십시오. –

답변

3

지수에 n을 추가하면 단 정밀도 또는 배정도 부동 소수점에 2를 곱할 수 있습니다. 그러나 다른 승수 값의 경우에도 가수를 변경해야합니다. 이는 분명히 중요하지 않습니다. .

+0

답변 해 주셔서 감사합니다. 어떤 변환 방법을 사용하지 않고 정수를 수동으로 두 번 저장할 수 있습니까? – seawhale

+0

컴파일 타임에 정수 값을 알고 있다면 예. 원하는 형식으로 저장할 수 있습니다.하지만 실행 시간에 대해 말하면 no로 변환하면 정수로 변환 할 수있는 마법은 없습니다. 이것에 대한 명시 적 명령이나 정수 비트 트위들 링 명령어를 사용하지 않고 두 번 무료로 사용할 수 있습니다. –

+0

감사합니다. 나는 그때 약간의 twiddling을해야 할 것입니다.) – seawhale

1

x86을 사용하는 경우 FIMUL 명령어를 사용할 수 있습니다. 이는 원하는대로 정확하게 수행 할 수 있습니다. 그러나 여러분이 mips를 할 때, 일반적인 경우를 변환하고 곱하는 것보다 더 좋은 방법은 없습니다.

관련 문제