質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

Q&A

解決済

2回答

1422閲覧

c言語 16ビット乗算器の作成

tomomom

総合スコア1

C

C言語は、1972年にAT&Tベル研究所の、デニス・リッチーが主体となって作成したプログラミング言語です。 B言語の後継言語として開発されたことからC言語と命名。そのため、表記法などはB言語やALGOLに近いとされています。 Cの拡張版であるC++言語とともに、現在世界中でもっとも普及されているプログラミング言語です。

0グッド

1クリップ

投稿2020/07/02 17:34

c言語で「8ビット乗算器を用いて16ビット乗算器の作成」という課題が与えられました

#include <stdio.h>
int main()
{
unsigned long a, b, c, d;
unsigned long a1, a0, b1, b0, c11, c10, c01, c00;

for (b = 0x00; b < 0x100; ++b) { b1 = (0x0F0 & b) >> 4; b0 = 0x0F & b; for (a = 0x00; a < 0x100; ++a) { d = a * b; a1 = (0x0F0 & a) >> 4; a0 = 0x0F & a; c00 = a0 * b0; c01 = a0 * b1; c10 = a1 * b0; c11 = a1 * b1; c = (c11 << 8) + (c10 << 4) + (c01 << 4) + c00; if (c != d) printf("%lu * %lu = %lu != %lu¥n", a, b, d, c); } }

return 0;
}

こんな感じ?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cateye

2020/07/02 17:38

で、質問は何でしょう?
ikadzuchi

2020/07/04 13:34

nビット乗算器とは、nビット×nビット=2nビットか、nビット×nビット=nビットか、どちらを指すのでしょうか。
guest

回答2

0

uint16通しで掛け算させればいいだけでは

投稿2020/07/03 00:13

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

こんな感じじゃなくて?

c

1#include <stdio.h> 2#include <stdlib.h> 3 4uint16_t mul8(uint8_t a, uint8_t b) { 5 return a * b; 6} 7 8uint32_t mul16(uint16_t a, uint16_t b) { 9 uint16_t c = mul8(a, b); 10 uint16_t d = mul8(a >> 8, b); 11 uint16_t e = mul8(a, b >> 8); 12 uint16_t f = mul8(a >> 8, b >> 8); 13 return c + ((d + e) << 8) + (f << 16); 14} 15 16int main() 17{ 18 uint16_t a = 12345; 19 uint16_t b = 10000; 20 uint32_t c = mul16(a, b); 21 printf("%u * %u = %u\n", a, b, c); 22 printf("%#04x * %#04x = %#08x\n", a, b, c); 23 return 0; 24}

投稿2020/07/02 19:05

shiracamus

総合スコア5406

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問