• 締切済み

8進法 16進法 2進法について

haporunの回答

  • haporun
  • ベストアンサー率40% (230/562)
回答No.6

言語はなんでしょうか。 VBでの方法も、どの言語でも使えそうな計算方法もみなさん書いてらっしゃるので、Cオンリーな方法をご紹介します。 共用体とビットフィールドをつかって、計算なくn進数を求める方法です。 ただしnは2のm乗です。 ここでは32ビット整数を16進数に変換します。 以下をmainの中かどっかに貼り付けてください。 ---------------------------------------- union{ struct{ unsigned keta1: 4; //1桁目 unsigned keta2: 4; //2桁目 unsigned keta3: 4; //3桁目 unsigned keta4: 4; //4桁目 unsigned keta5: 4; //5桁目 unsigned keta6: 4; //6桁目 unsigned keta7: 4; //7桁目 unsigned keta8: 4; //8桁目 }; unsigned long kazu; }; kazu = 1234567890; ---------------------------------------- これを実行しただけで、たとえば16進数の3桁目がketa3に入っています。 unsigned keta1: 4; の4の部分を3とかに変えて、合計が32ビットを超えるように桁を増やせば、8進数(2の3乗)とかもわかります。 この方法ではketa2とかに13とかいう値が入っているので、文字Dとかに変換しなければなりませんね。 この方法は、アルゴリズムを考えると、計算などで求めるよりもはるかに高速です。 命令文は代入だけですから。 ぐだぐだ書いてしまいましたが、Cを使っていなければ何の意味もありませんね。 共用体とビットフィールドが大好きな、はぽるんでした。

関連するQ&A

  • n進法の変換!

    数学が得意で、Excelの達人の方!(じゃなくてもいいんですが……) たとえば、Windowsに載っている、電卓を関数モードで使うと、16進法10進法8進法2進法の変換ができるんですが、ほかには変換できません。 と、言うことで、数字(12桁以上必要)を入れると、ほかの進法に変わるシートを作りたいんですが、ぜんぜんうまくいきません。 誰か、うまいのを教えてください。体裁は気にしません。  ※変換前のn進法のnを、たとえばA2に入力  ※変換後のn'進法のn'を、たとえばA3に入力  ※変換する、n進数を入力 と、こんなシートを作りたいんです。 よろしくお願いいたします。

  • 進法を変えて3で割り切ることはできますか?

    10進法では3の倍数以外を3で割り切ることが出来ません。 この割り切れない数を進法を変えて割り切ることはできるのでしょうか? また何進法なら可能でしょうか?

  • 10進法

    ここに、質問するのがベストかどうかわかりませんが、 世の中では10進法が使われていますが、これは人間の手や足の指が 10本あったからなんでしょうか? それとは別に、 コンピューターは2進法で動いていると聞きました。2進法ということは、大きい数を表すときには桁が10進法であらわすときの5倍必要だとおもいます。 コンピューターにとって、桁が多いのと、10進法や20進法などといったように進法の数を増やすのでは桁を増やすほうが得意なのでしょうか? うまく説明できませんが、教えてください。

  • 60進法と10進法

    違いがいまいち分かりません。 時間は60進法だと言いますが、100分など60以上の数でも表せますよね? そもそも、60という数自体、10進法の数字ではないのでしょうか。 それに一日が24時間だというのも気になります。 時間が60進法なら60時間で一日にならないのでしょうか。 というか、自分が「進法」という概念をきちんと理解しているのかさえ怪しいです……。 また、3進法や100進法なども存在するのでしょうか。 存在するなら、どのような場合に使われるのでしょう。 時間以外に60進法を使う場面があればそれも知りたいです。 数学から離れて久しいド文系ですので、易しい解答を宜しくお願い致します。

  • 生活の数を10進法以外に作ったらどうか?特に値段のつけ方について

    数学で勉強して無駄だったと思われることに、「進法」がありました。2進法の10110とかの類です。2進法はコンピュータ概念でいいとして、他の進法は使い道がありません。 そこで身の回りの生活で出てる苦数は、みな10進法ばかりです。これを多国籍語ならぬ多進法数を導入したらどうでしょうか。 例えば6進法などが結構つかえるのではないか。 そうすると1980円なんていういかがわしい値段が、3300円ということになります。これだと、だまされたりいたずらに購買意欲をかきたてられたりしなくてすみますよね。 全くメリット無いでしょうか。貨幣は今のままで間に合います。

  • 12進法と60進法の数値は

    アナログ時計だと12進法で ↓  ↓  ↓です。 1 2 3 4 5 6 7 8 9 10 11 12 Q1:進法の考え方からすると 10~12は1ケタで表現すべきではないですか?   16進法だと    0 1 2 3 4 5 6 7 8 9 A B C D E F   と1ケタで表現出来てます。 Q2:宇宙人(3000年前かなぁ!)が使用していた60進数は1ケタで60種類の数値を表現していたん    ですか?    数値の種類もわかりますか?

  • n進法への変形の仕方についての質問です

    10進法で63とあらわされる数を他の進法で表すと (1)63=1・2^5+1・2^4+1・2^3+1・2^1+1と変形できるので2進法では111111 (2)63=2・5^2+2・5^1+3と変形できるので5進法では223 …とありますが、この途中の式はどのようにしてこの形にするのでしょうか? 途中式への変形の仕方がわかりません どなたかお願いします…

  • 2進法、10進法について

    10進法を2進法に変換する時に小数点のつく数の場合はどのようにしたらよいのでしょうか?例えば(12.5)10みたいな場合です。

  • n進法→m進法への変換

    やりなおしのSPI問題に頭を痛めています。10進法→n進法、n進法→10進法、というやり方はそれぞれ理解できますが、以下のような応用になると、うまくできません。どなたか、宜しくお願いします! 例題1 3進法で3桁の数は何個あるか。 (書き出していくとわかるのですが、それ以外に何か公式のようなもので求める方法がありますでしょうか。他の進数になるとたちまち困ります。) 例題2 3進法の112201は5進法でいくらか。 (いったん10進法に直さずに、n進法→m進法への変換をダイレクトに行なえ、効率的でわかりやすい方法はありますでしょうか。)

  • ○進法は何種類あるのでしょうか?

    2進法とか10進法とか60進法などは聞いたことがありますが ○進法は何種類あるのでしょうか?