新規会員登録における電話番号登録必須化のお知らせ

8進数から16進数、また、16進数から8進数に
計算過程でほかの進数に変換することなく直接変換できますか?

教えて!goo グレード

A 回答 (2件)

例:


8進の 324 を16進に。
32 と 4に分ける
32 を 2で割る → 15 あまり 0
あまり0なので、4はそのまま。
15を1 5 に分ける。
1を2で割る→ 0 あまり 1
あまり1なので、 5に+8する
0になったので終了。 答えは D4

等というように、ビットシフトと等価な計算はできます。
ただ、これを「他の進数に変換していない」と言っていいか微妙です。

それに、2進数にして区切りを変更する方が楽なのではないでしょうか。
324 → 011 010 100 → 0 1101 0100 → D4
    • good
    • 0

8進数か16進数のどちらかで計算をすればいいのです。


0~16(10進数)で16進数と8進数の対応をつけておく必要はあると思いますが。

具体例として、8進数の234を16進数で計算して16進数の9Cに変換してみます。
以下、8進数は234(8)のように(8)を数字の後につけ、16進数は同様に9C(16)のようにします

234(8)を1桁ずつにばらすと2(8), 3(8), 4(8)。
それぞれ16進数では2(16), 3(16), 4(16)。
また、10(8)は8(16)。
2(16)×8(16)=10(16)
10(16)+3(16)=13(16)
13(16)×8(16)=98(16)
98(16)+4(16)=9C(16)

とはいってもたとえば手計算で行う場合、普通の人は8進数や16進数で「九九」のような基本的な計算を覚えてはいませんので、その意味で手計算で行うなら実用的には10進数を使う必要があると言えるかもしれません。

(質問内容には無関係ですが、その他(学問・教育)ではなく数学のカテゴリに出せばあっという間に複数の回答がつくと思うのですが・・・)
    • good
    • 0

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


人気Q&Aランキング