基数変換について以前から少し疑問に思っいた点があるので教えてください。例えば10進数の56を2進数に直すと111000になります。しかし、16進数の38から2進数に直すと4桁ずつ計算する癖がついているので00111000とかいてしまいます。この2つは桁数でいうと前者が6桁、後者が8桁で表されているだけで、結局は同じ事を意味していると思うのですが、例えば参考書の答えでは、しっかりと00111000と書いてあります。この桁数というのは重要なのでしょうか?答えの時111000としてしまっては間違えになるのでしょうか?よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (4件)

位取りでは,余分なゼロは書かないというのが原則です.


例えば,十進法で百は100と書き,0100とは書きません.
こういう立場からすると,00111000よりはむしろ111000の方が
正しいと言えます.

ただし,16進数,2進数が出てくるのはたいていコンピューターの世界です.
16進数2桁を表すのに2進数8桁ですが,
そのために8つのビットを用意したとします.
で,111000をあらわすのに,対応する6つのビットを111000とすれば
OKかというとそうは行きません.
左側の2つのビットはどうなっているか分からないからです.
どうなっているかは,2進数の表現にビットが割り当てられる前にその記憶領域が
どういう風に使われたかという履歴によります.
したがって,111000を間違いなく表そうと思ったら,
8つのビットをちゃんと00111000とする必要があります.
こういう視点からするなら,00111000が正しいと言えるでしょう.
    • good
    • 0

コンピュータとしてなら、


単位が8づつなので、
ケタに収まる様に「0」を付けるのが正しい書き方です。

でも、実際には省略している事が多い
(暗黙の了解)です。
    • good
    • 0

間違いにはならないと思いますよ。


16進数でも2桁ずつ書くが人いますが、間違いではありません。
    • good
    • 0

正しい解答だと思います。

    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qn進数→10進数  10進数→n進数 の変換ってできる?

10進数を2進数にするやりかたはわかるんですが、
2進数→10はイマイチわからないです。
その他10進数→12進数とか、その逆とか、なにか公式とかないんでしょうか?

Aベストアンサー

10進数、2進数に限らず、n-進数(n≧2の自然数)の意味(定義)をしっかり理解すれば、どんな変換でもできるようになるでしょう。
ただし単純な公式ということではなく、幾つかのステップを踏む計算法が作れる、ということになります。

ここから、「3の5乗」を「3^5」のように書くことにして……
例えば2進数から8進数の例を考えて見ましょう。
100101(2)を8進数で表すとどうなるか。
6桁の2進数ですから
100101(2)
= 1×2^5
+ 0×2^4
+ 0×2^3
+ 1×2^2
+ 0×2^1
+ 1×2^0
(左の数字が2進数の各桁の数、真ん中が「2進数」の2、右端が桁を表す数です。この真ん中の数を8にして、全体の量が変わらなければいいわけ。)
=32+4+1=37(←この行は10進数)
= ?×8^n(何桁か分からないのでnとしてみました)
+ ……
+ ?×8^0(?はすべて0~7の整数)
さて、8^2=64 は問題の数37より大きくなってしまうので、n=1です。
= ?×8^1
+ ?×8^0
= 4×8^1(←ここだけだと32、問題の37まで5足りないので、次の行……)
+ 5×8^0
= 45(8)
となります。

10進数、2進数に限らず、n-進数(n≧2の自然数)の意味(定義)をしっかり理解すれば、どんな変換でもできるようになるでしょう。
ただし単純な公式ということではなく、幾つかのステップを踏む計算法が作れる、ということになります。

ここから、「3の5乗」を「3^5」のように書くことにして……
例えば2進数から8進数の例を考えて見ましょう。
100101(2)を8進数で表すとどうなるか。
6桁の2進数ですから
100101(2)
= 1×2^5
+ 0×2^4
+ 0×2^3
+ 1×2^2
+ 0×2^1
+ 1×2^0
(左の数字が2進数の各桁の数、真...続きを読む

Q循環小数の進数変換について質問です。次の16進数を10進数に直したいの

循環小数の進数変換について質問です。次の16進数を10進数に直したいのですが、どうすればよいのかわかりません;どなたかお力添えをお願いします。

(1)0.2222222222222222…

(2)0.6666666666666666…

Aベストアンサー

(1)だけ
2×(1/16)+2×(1/16)^2+2×(1/16)^3+…
=(2/16)/(1-1/16)=2/15です。

2番目のイコールには等比数列の和の公式を使っています。

Q10^210/(10^10+3)の整数部分の桁数と一桁目の数を求めよ。

10^210/(10^10+3)の整数部分の桁数と一桁目の数を求めよ。

10^210/(10^10+3)=(10^210+3^20-3^20)/(10^10+3)
=(10^210+3^20)/(10^10+3)-(3^20)/(10^10+3)
と変形して考えたら、
桁数は201けた、一桁目は0になりました。
解答がないので、正解がわかりません。
これでよいでしょうか。

Aベストアンサー

(10^210)/(10^10)>(10^210)/(10^10+3)>(10^210)/(10^11)

10^200>(10^210)/(10^10+3)>10^199

10^200は201桁の最小整数、10^199は200桁の最小整数なので

∴(10^210)/(10^10+3)は200桁の整数

次に
x=10^10とおくと
10^210/(10^10+3)=x^21/(x+3)
=x^20-3x^19+9x^18- … -3^19*x+3^20-3^21/(x+3)
=x(x^19-2x^18+ … -3^19)+3^20 -3^21/(x+3)

x(x^19-2x^18+ … -3^19) は 10^10の倍数なので整数部に1桁目には関係なし。
3^20=3486784401
-3^21/(x+3)=-10460353203/(10^10+3)=-1.046…
3486784401-1.046… = 3486784399.953…
∴整数部の1桁目は「9」

Q16進数n桁を10進数で表すときに必要な桁数

16進数n桁を10進数で表すとき何桁必要なのかを調べていたのですが
例:FF(16進2桁)→255(10進3桁)
計算式はlog10(16^n)桁(端数繰り上げ)になると思います。

ところで16進n桁に対して10進は2*n桁あれば十分なのかどうかを知りたいのです。
つまり16進数100桁に対して10進数200桁あれば十分ですが
nが大きい数字でも成立するのかどうか。

log10(16^n) < 2 * n になるのかな??

当方数学的な知識が乏しいものでそうなるのかどうかわかりません。
是非ご教授頂けないでしょうか。宜しくお願い致します。

Aベストアンサー

> 計算式はlog10(16^n)桁(端数繰り上げ)になると思います。
これで正解です。

log10(16^n) = n*log10(16) = 1.2*n (端数繰り上げ)
ですから、10進は [1.2*n+1]桁 で十分で、2*n桁は (もちろん十分ですが) 過剰です。(ここで [] は切捨てです。)
16進数100桁は 10進数121桁です。

Q14桁の16進数を10進数で表した時の桁数

いつもお世話になってます。
情報処理技術者試験の問題で分からない部分があったので質問させて頂きます。

***問題
14桁の16進数を10進数で表した時の桁数
但し、log10(2) = 0.301とする。

***解答
log10(16^14)
= 14 * log10(16)
= 14 * log10(2^4)
= 14 * 4 * log10(2)
= 14 * 4 * 0.301 = 16.856

繰り上げて答えは17桁になります。

質問ですが何故、14桁の16進数の最大値の桁数が16^14と同じになるのかが分かりません。
14桁の16進数の最大値は16^14 - 1になるので、
桁数も16^14 - 1と同じになるのではないのでしょうか。


基本的な事を見逃している気がします。
解答宜しくお願い致します。

Aベストアンサー

>14桁の16進数の最大値は16^14 - 1になるので、
>桁数も16^14 - 1と同じになるのではないのでしょうか。

まったくおっしゃる通りですが、

実際問題として、16^14と16^14-1の差は、きわめて小さく、
16^14-1の桁数を求めることは難しく、16^14なら、やさしい。

また、
>繰り上げて答えは17桁になります。
というのも、ちょっとザックリしすぎていて、
数学の答案としてなら、例えば、

16<16.856<log(16^14)<16.902(=14*4*0.302)<17
10^16<16^14-1<16^14<10^17 だから、17桁、
ということです。

実際には、ほぼありえないことなので、
ザックリした答案でも間に合いますが、
log(16^x)≒??.00…01のように、きわどい場合には、
おっしゃるように、16^x-1が、10^??より小さくなって
しまわないかの、チェックは必要になります。


人気Q&Aランキング

おすすめ情報