• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:16進数の乗算について。)

16進数の乗算についての質問

このQ&Aのポイント
  • 小生、現在16進数の乗算を勉強しているのですが、計算の手順が理解できません。
  • 具体的な例として、5 X A という式があります。
  • 計算の手順は、まず5を10進数に変換して10Hとし、10HをAで掛け算します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.6

馬鹿馬鹿しい方法かもしれませんが、2進数に直して計算することも出来ます。 5=0101 A=1010     0101     1010 *)------     0000    0101   0000  0101 --------  0102010 (繰り上げて)  0110010 (4桁で区切って)  011 0010 (16進に直して) 32になる。

HackHack
質問者

補足

osu_neko09さん、ご回答頂き誠にありがとうございます。 全然馬鹿ばかしくないです!! とっても分かりやすい計算方法だと思いました。 以上、お忙しい中申し訳ございませんが、ご確認の程宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (5)

  • ohkinu1972
  • ベストアンサー率44% (458/1028)
回答No.5

そもそも16進数は2進数を表しやすいためにあるので、 2進数に直せば割とわかりやすいかもしれません。 5×Aであれば、5×8+5×2に変形できます。 5を2進数に直すと、0101 ×8は3ビットシフト、×2は1ビットシフトなので、 00101000+00001010=00110010 上位4桁、0011=3 下位4桁、0010=2 答えは32となります。 ですが、基本的に1桁と1桁の計算は、概念を理解した後は、 掛け算の99のように覚えるしかないと思います。 質問者様のやり方は、10進数で5×7を5×10-5×3と 表現して計算されているだけで、 テクニックとしてはあると思いますが、 計算のやり方としては普通には思えません。 なのでしっくりいかないのではないでしょうか?

HackHack
質問者

補足

ohkinu1972さん、ご回答頂き誠にありがとうございます。 2進数に直す方法ですか。。。 確かに私の計算方法は、普通ではないと思います。 考えすぎの計算方法だと思います。 だからしっくり来ないのだと思います。 とても参考になるご教示頂き誠にありがとうございます。 以上、お忙しい中申し訳ございませんが、ご確認の程宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
回答No.4

私なら、もし乗算表や電卓が使えない環境での計算だとすると、 5 * 0AH の計算なら、 十進数で5 * 10 = 50 そして十進数の50を十六進数に変換して32Hという風に計算します。 50÷16 = 3…2 ※「…」はあまりの意 暗算の場合、実際には割り算じゃなく引き算でやることが多いです。 2のべき乗の数を覚えていると便利ですよ。 2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536

HackHack
質問者

補足

sunspot_numberさん、再度ご教示頂き、誠にありがとうございます。 >2のべき乗の数を覚えていると便利ですよ。 確かに便利だと思います。 以上、お忙しい中大変申し訳ございませんが、ご確認の程宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
回答No.3

お尋ねの計算例は、 16進数の5(=10進数の5)* 16進数のA(=10進数の10)=16進数の32(=10進数の50) でよろしいかと思いますが、 ※「*」:乗算を表すつもり >そのままでは計算しにくいので、… の部分が意味不明ですが、 なぜ16進数のままで計算なさらないのでしょうか? 9*9(九九)の演算が有るように十六進数のF*Fの掛け算表(予め自作するなどして)を使って計算する方法もあるでしょう。 まぁ、十六進数同士の掛け算が不得意なら、16進数 → 10進数の変換を行なってから乗算し、結果を10進数 → 16進数の変換を行なえばいいのではありませんか?

HackHack
質問者

補足

sunspot_numberさん、ご回答頂き誠にありがとうございます。 以下、sunspot_numberさんにお伝えしたい連絡事項を記述させて頂きます。 >なぜ16進数のままで計算なさらないのでしょうか? 16進のままで計算するのは私自身、馴れていません。。。 ですから、「そのままでは計算しにくいので」という分を記述しています。 >まぁ、十六進数同士の掛け算が不得意なら、16進数 → 10進数の変換を行なってから乗算し、結果を10進数 → 16進数の変換を行なえばいいのではありませんか? 仰るとおりですが、16進から10進、10進から16進の変換も、16までの数以上は即、頭で出来ません。。。 以上、お忙しい中、大変申し訳ございませんが、ご確認の程宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

九九を覚えるのと同じように FF (?) を覚えるという手もあるな.

HackHack
質問者

補足

Tacosanさん、ご回答頂き誠にありがとうございます。 やはり丸覚えがいいのでしょうか? 以上、お忙しい中申し訳ございませんが、ご確認の程宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

何がしっくりこないのですか? それが計算方法じゃないですか。 1+1=2と文章で書けるけどしっくりこない、といってるのと同じですよ?

HackHack
質問者

補足

gigosyokufulさん、ご回答頂き誠にありがとうございます。 やはり、深く考えすぎなのでしょうか? 以上、お忙しい中大変申し訳ございませんが、ご確認の程宜しくお願い致します。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 16進数どうしの乗算

    Excel2003で、16進どうしの乗算をしたいです。もちろん関数は知っています(Sheet,VBA共に)。 しかしデータが掛ける数掛けられる数どちらも64bitあるので計算が出来ません。 そこでVBAを使ってコードを書いて計算しました。 でも私はその結果を64bitにしたいので、私の書いたコードでは10進数になってしまい、うまく行きません。 64bitにするというのは、Windowsについている電卓のように切り捨て処理をしたいからです。 頭を使って考えましたが、どうしても結局は10進数になってしまいます。Excelだからでしょうか。 ちなみに、64bitの数のうち、1つは固定された数です。 文章が汚くて解りづらいかも知れませんが、どうかお願いします。 *16進数の乗算をして2進数または16進数で結果を出す方法か、10進数でxxbitに揃える方法でお願いします。(それ以外でもやりたいことが出来れば気にしません。)

  • 2進数の乗算と除算

    先日、桁上がりについて質問させていただいた者です。 加算と減算はなんとか完成したのですが、乗算と除算になって混乱してしまいました。 二進数の乗算、除算はビットシフトと関係がありますが、私の作っているものの場合はどのようなソースコードにすればよいでしょうか? (ちなみに、bの値は2のべき乗に限定しています。) int main(void) { int a,b,i; int x[8],y[8]; puts("二つの符号なし整数を入力してください。(ただしa>bとし、bは2のべき乗の値とする)"); printf("a="); scanf("%d",&a); printf("b="); scanf("%d",&b);  printf("\n"); /*二進数の形に変換*/ for(i=0;i<=7;i++){ x[i]=a%2; a=a/2; y[i]=b%2; b=b/2; } puts("aとbをそれぞれ二進数で表すと"); printf("a="); for(i=7;i>=0;i--){ printf("%d",x[i]); } puts(""); printf("b="); for(i=7;i>=0;i--){ printf("%d",y[i]); } printf("となります。\n\n");     return(0);  }

  • 乗算回数最小の冪乗アルゴリズム

    断面n次モーメントを計算するプログラムを書いていてふと思ったのですが, X^n を乗算の繰り返しで計算する場合,一般の自然数nについて乗算回数最小の アルゴリズムって存在するんでしょうか? たとえばnが2の冪乗の場合,2乗を繰り返すと1回ごとに X → X^2 → X^4 → X^8 → X^16 → … となるので,X^n は log2(n) 回の乗算で計算でき,たぶんこれが最小だと思います. その他のnについてはどうでしょうか? nの素因数分解とか使えばうまくいくんでしょうか?

  • ネピアの数

    独学で勉強しています。 微分のところでネピアの数 e というものが出てきたのですが、  e = 2.7181… という数字は  (1+1/10)^10 = 2.5937…  (1+1/100)^100 = 2.7048…  (1+1/1000)^1000 = 2.7155… のように地道に計算して求めるしかないのでしょうか? 1000乗してもまだ小数第2位くらいまでしか合ってないので、 コンピューターのない時代にどうやって見つけたのか気になりました。 あと e^x の導関数を求めるところで  lim{e^(x+h) - e^x}/h = e^x lim{e^h - 1}/h まで変形したのですが、 あとは(e^h - 1)/h の h にどんどん小さい数字を代入すると1に近づいて行くから e^x の導関数は e^x になる、というようなことが書いてありました。 ネピアの数 e 自体の計算も大変なのに それの 0.1乗とか0.01乗とか計算して、 本当に (e^h - 1)/h が 1 に近づいていくと考えるなんて あやしいんじゃないかと思ったのですが、 昔の人はどうやって e^x の導関数が e^x になってることを知ったのかが気になります。 上のやり方とは違う導関数の求め方があるのでしょうか?

  • pythonの乗算の表示結果の差について教えてください

    pythonの乗算の表示結果の差について教えてください。 pythonの対話モードで下記に示す乗算を行いました。 同じ計算をしているにもかかわらず、結果が異なる理由を教えてください。 参考書によると上の計算表示結果は最大精度で表示しているから、下の計算結果表示は人間が見るための精度で表示しておりバグではない。と、書いていました。最大精度で表示(6.2830000000000000なら理解ができます)しているにもかかわらず、計算結果が違うことがなぜバグではないのか理解ができません。 教えてください。 ※上の結果がおかしい理由は2進数の計算の問題だとは思いますが・・・ ------------------------------------------ >>> 3.1415 * 2 6.2830000000000004 >>> print 3.1415 * 2 6.283 ------------------------------------------

  • Verilogでモンゴメリ乗算

    私はVerilogについてはド素人で全くと言っていいほど書くことができません。そこに仕事上でVerilogでモンゴメリ乗算をしなくてはならなくなりました。どうかわかる方はこの以下のアルゴリズムを利用してプログラムを教えてください。お願いします。 まずはそのアルゴリズムを紹介します。 [モンゴメリ乗算アルゴリズム] Input: N,0<A<N,0<B<N,V  前計算: V=-N-1mod2r output: M=A・BmodN Step 1:Q=A・B・VmodR R=2r   Step 2:M=AB+QN Step 3: M=M/R 注.前計算,step1の2rは“2のr乗”です。また前計算の-N-1は   “-Nの-1乗”のことです。 ビット数は全て8bitでお願いします。  

  • この方程式をエクセルで解くにはどうすればいいのですか?

    収束計算が必要と思われる下記の2つの方程式からX、Yを算出したいのですが、エクセルで式を作成する場合どうすればいいのでしょうか? どなたか、ご教示願います。 a*(X+b+c)=d*(X+Y) e/f*(g^2-f*h^2)*X=e*i^2*Y a=0.92 b=900 c=79.3 d=1 e=3.14 f=4 g=387.4 h=82.6 i=77.6 尚X、Yは計算機等で計算すると以下の数値となります。 X:174.1、Y:887.1 宜しくお願いします。

  • 2進数と10進数について

    高校物理(1)Aのビットパターンの計算に出てくる2進数と10進数の計算でどのような式からその答えになるかがわかりません。2進数と10進数をくわしく教えて下さいおねがいします。

  • 固有振動数

    固有振動数の答えが合いません fn=(λ/L)^2/2π*√EI/ρA の式で L=210mm (長方形 b=0.5 h=40mm) λ=1.875 E=206GPa ρ=7.86*10^-6 Kg/mm^3 という条件で計算すると答えが9.38となるのが正解なのですが、 いくら計算しても23.717にしかなりません。 誰か数値の代入の仕方を教えてください 困ってます

  • 四元数代数Hの中心について

    H・D・エビングハウス、他著 成木勇夫訳 シュプリンガー数学リーディングス第7巻 「数 下」 ISBN4-431-71124-4 の234頁の下部に掲載されている四元数代数の中心についての命題でつまづいています。命題の内容は添付画像の通りです。以下に自分の考察とわからない箇所を挙げます。 1. {x∈H:すべてのu∈ImHに対してxu=ux}は四元数代数Hの部分集合ImHの中心化代数であり、Z_H(ImH)(_Hは下添字)とすれば、Z(H)=R e=Z_H(ImH)と書けると考えている 2. 証明内の{x∈H:xu=ux}とZ(H)、{x∈H:xv=vx}とZ_H(ImH)との区別が付いていない 3. 2.の{x∈H:xu=ux}と{x∈H:xv=vx}がもしそれぞれZ(u)とZ_H(v)と書けるならば、Z(u)=R e=Z_H(v)と書けると考えている 4. 「u∈ImH,u≠0と仮定してよい」とあるが、何故u≠0なのか理解していない 5. 「(xからx-αeに移り、それを正規化せよ!)」とあるが、どの式をxからx-αeに移すのかが理解できていない 他にも怪しい箇所が点在してますが、最初は上記の項目から始めてみようと思いますのでよろしくお願いします。