小学校の掛け算の問題×3
■ このスレッドは過去ログ倉庫に格納されています
0653132人目の素数さん
2014/06/30(月) 14:47:37.55とりあえず、32bit長整数値の2引数a,bに対して
これらの積を64bit整数値の戻り値とする関数m(a,b)
int64 m(int32 a, int32 b) {
int s = 0;
for (int i = 0; i < 32; i++) {
//aのiビット目をpへ抽出
int p = (a >> i) & 1;
for (int j = 0; j < 32; j++) {
//bのjビット目をqへ抽出
int q = (b >> j) & 1;
//pとqの論理積をsのi+jビット目に加算
s += (p & q) << (i + j);
}
}
return s;
}
■ このスレッドは過去ログ倉庫に格納されています