勉強をはじめたばかりですが、進数ってゆうのがよくわかりません
これは使うと便利なものなんでしょうか??
はじめのうちはあんまりこの数字覚えなくて大丈夫ですかね??
お願いします
進数
- softya(ソフト屋)
- 副管理人
- 記事: 11677
- 登録日時: 13年前
- 住所: 東海地方
- 連絡を取る:
Re: 進数
2進法、16進法はコンピュータで基本的に使われているので知らないよりは知っていたほうが良いでしょうね。
それと知らないととても困る場面があります。
それと知らないととても困る場面があります。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。
Re: 進数
コンピュータの中身は基本的に2進数で動いてます。(回路のオン/オフ)
普段使っている10進数も内部では2進数で表現されてますが、このままだと長い、読みづらいので16進数で表すことがあります。
2進数4桁⇒16進数1桁
16進数を使っている身近なものだと文字コードやIPアドレス、MACアドレスなどがあります。
ではなぜ人間に分かりやすい10進数を使わないかというと、2進数で表現できる範囲とズレがあるからです。
例えば99(10進数)を2進数にすると110011(2進数)となりますが、6桁の2進数は0~127を表現できます。
2桁の10進数としてしまうと2進数で動かそうとしたときに100~127が使えず無駄になってしまいます。
というわけで、データをいじったりするときは2進数や16進数の方が便利なことがあります。
余談ですが、1GB=1024MBというのも2進数の都合です。
普段使っている10進数も内部では2進数で表現されてますが、このままだと長い、読みづらいので16進数で表すことがあります。
2進数4桁⇒16進数1桁
16進数を使っている身近なものだと文字コードやIPアドレス、MACアドレスなどがあります。
ではなぜ人間に分かりやすい10進数を使わないかというと、2進数で表現できる範囲とズレがあるからです。
例えば99(10進数)を2進数にすると110011(2進数)となりますが、6桁の2進数は0~127を表現できます。
2桁の10進数としてしまうと2進数で動かそうとしたときに100~127が使えず無駄になってしまいます。
というわけで、データをいじったりするときは2進数や16進数の方が便利なことがあります。
余談ですが、1GB=1024MBというのも2進数の都合です。
Re: 進数
なぜコンピューターは2進数でかんがえるのかという疑問があるのならば、
なぜ我々は10進数でかんがえるのかということを考えてみることをおすすめします。
質問の内容に具体的に答えるのでしたら、
①整数を整数として使う限りなら2進数を詳しく知る必要性はあんまりない
②分数や小数についていえば、10進数では循環しない小数(たとえば0.1など)が循環するので、
誤差を考えたりする必要があるのであれば詳しく知る必要がある。
そこらへんが大雑把でいいのであれば、別に知らなくても当面プログラムはかける。
③C言語でビット演算をするのであれば、(数学的な定義云々よりもこれが一番必要性を感じることになりそうですが)
ある程度学ぶ必要がある?(しかし2進数について学んだからビット演算に詳しくなるわけではないと思う)
・・・という感じだと僕は思います。
便利かどうかという質問に関して意見を言うなら、少なくともプログラミングに関わらなければ考えないようなことを
考える必要があるということに関しては2進数は不便だと感じる思います。
知っているとプログラムを書くのが楽になるかという観点では、③に関するプログラムが読めるようになることと
②に関する問題に気づけるという点では便利だと思います。
なぜ我々は10進数でかんがえるのかということを考えてみることをおすすめします。
質問の内容に具体的に答えるのでしたら、
①整数を整数として使う限りなら2進数を詳しく知る必要性はあんまりない
②分数や小数についていえば、10進数では循環しない小数(たとえば0.1など)が循環するので、
誤差を考えたりする必要があるのであれば詳しく知る必要がある。
そこらへんが大雑把でいいのであれば、別に知らなくても当面プログラムはかける。
③C言語でビット演算をするのであれば、(数学的な定義云々よりもこれが一番必要性を感じることになりそうですが)
ある程度学ぶ必要がある?(しかし2進数について学んだからビット演算に詳しくなるわけではないと思う)
・・・という感じだと僕は思います。
便利かどうかという質問に関して意見を言うなら、少なくともプログラミングに関わらなければ考えないようなことを
考える必要があるということに関しては2進数は不便だと感じる思います。
知っているとプログラムを書くのが楽になるかという観点では、③に関するプログラムが読めるようになることと
②に関する問題に気づけるという点では便利だと思います。