2012-02-27 12 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

最初に2つの整数を64ビットに変換してから、通常の乗算​​を行い、値を返します。

1

だけuint64_tに二つの整数のいずれかを変換します

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

c = (uint64_t) a * b; 
関連する問題