プロが教えるわが家の防犯対策術!

今更って感じで恥ずかしくて先生や友達に聞けませんが、
いま10進数→16進数へ変換するときなどで大きい数を割らなきゃならないのですが、
みんなは満遍なくやっているようですが私の頭のCPUは一気に加熱して自分が何をしてるか見失う感じです。

先ほどの10進数→16進数に変換ですが、
たとえば 61012(10) を16進数に変換となると
この巨大な数を16で割っていかなければなりません。
これをすばやくやる裏技ってあるのでしょうか?
できる人はスラスラできるように見えるのですけどね。

だからといって割り算なんて小学校のころ習うことだからそこらの人に聞くのは恥ずかしいです。
なにかコツがあったらおしえてください!
おねがします。

A 回答 (6件)

2進数、16進数を仕事で使っている者です。



学生時代、割り算で解を求めるってことで習いましたが、やはり無理でした。割り算めんどくさいですからね。
なので、私なりに今でも使っている方法を・・・。

一度2進数にしてから16進数にするという方法です。
2のn乗を覚えます。といっても、16ビット程度の計算しかしないので、65536までしか覚えてません。
それと、4ビットの2進数を16進数に変換できるよう訓練もします。

計算したい10進数から、2のn乗の大きいほうから順々に引いていきます。その引き算ができるビットは1になります。

61012-32768=28244  →1
28244-16384=11860  →1
11860- 8192= 3668  →1
3668- 4096 できない →0
3668- 2048= 1620  →1
1620- 1024= 596  →1
596- 512= 84  →1
84- 256 できない →0
84- 128 できない →0
84- 64= 20  →1
20- 32 できない →0
20- 16= 4  →1
4- 8 できない →0
4- 4= 0  →1
0- 2 できない →0
0- 1 できない →0

これを左から4桁ずつ並べると
1110 1110 0101 0100 (2進数)
E  E  5  4  (16進数)

というような具合です。
私のCPUでは割り算するより引き算の方がはるかに早いですよ(笑)
    • good
    • 0

こんばんは。



安心してください。
私も紙と鉛筆がなければ61012÷16なんて複雑な計算できません。メモリ無いから仮想メモリ使ってる状態です。

でも試験なんかは時間との勝負なので、頭が柔らかいうちに計算こなしておいた方がいいですよ。

コツとしては、大した事ではないんですが、16の倍数と2の乗数をある程度ソラでいえるようになれば早くなるんじゃないのかなぁと思います。
16→32→48→64→80→96→112
2→4→8→16→32→64→128→256…

参考になればうれしいです。
    • good
    • 0

16進数では、



1桁目は、16の0乗 = 1
2桁目は、16の1乗 = 16
3桁目は、16の2乗 = 256
4桁目は、16の3乗 = 4096

というように各桁に重みがあります。コレを踏まえて、

10進数、61012 をこの各桁の重みで割っていき、あまりが16未満になるまで計算します。

(1)61012 を 4096 で割り 
答え 14 あまり 3668
(2) (1)でのあまりを 256 で割る
答え 14 あまり 84
(3) (2)でのあまりを 16 で割る
答え 5 あまり 4

コレにより、
1桁目は「4」、
2桁目は「5」、
3桁目は「14」、
4桁目は「14」 なので

10進数 61012 は 
16進数 EE54 になります。

各桁の「重み」を覚えておけばちょっとは楽に計算できます。慣れれば10進数で100万ぐらいの数字でも暗算で16進数に変換できるようになれます。
    • good
    • 0

こつは、ないでしょうね。



16が大きいからといって、
一度、2進数にしてから、という方法も考えられますが、割り算の回数が4倍になりますからね。

Windowsのアクセサリの計算機でも、計算できますよ。

参考URL:http://www.asahi-net.or.jp/~ax2s-kmtn/ref/bdh.html
    • good
    • 0

16で割りたいなら、4で割ることを2回繰り返せば良いと思います。

一桁の割り算なら暗算でできるでしょ。
あるいは、8で割ってその答えを半分にする(2で割る)とか。。
    • good
    • 0

コツなんてないですよ。


たくさん計算をこなして、頭のCPUの性能を上げましょう。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!