2012-02-27 3 views
3

2 32 비트 부호없는 정수의 입력을 어떻게 곱하고 곱해서 출력을 C에서 64 비트 정수로 가져 옵니까? 어떤 도움을 주셔서 감사합니다! 감사.2 개의 32 비트 정수를 곱하여 64 비트 정수를 생성하려면 어떻게합니까?

+0

http://en.wikipedia.org/wiki/Multiplication_algorithm – pmg

+1

@Suma 아니, 그 게시물의 중복이 아니다. .. 링크 된 게시물을 읽으십시오. – Lundin

+0

실제로, 그들은 동일하지 않습니다. 혼란을 피하기 위해 자동 코멘트를 삭제했습니다. – BoltClock

답변

12
#include <stdint.h> 

uint64_t mul64(uint32_t x, uint32_t y) { 
    return (uint64_t)x*(uint64_t)y; 
} 
6

두 개의 정수를 먼저 64 비트로 변환 한 다음 일반 곱셈을 수행하고 값을 반환하십시오.

1

그냥 uint64_t에 두 개의 정수 중 하나를 변환 :

uint32_t a, b; 
uint64_t c; 
/* assign to a and b */ 

c = (uint64_t) a * b; 
관련 문제