なぜ人は10進数にこだわるのですか?
三等分すらまともに出来ずに正しい計算もできないなんて不要ではありませんか?
と言われてそうだと納得できますか?
結局すべてを満たす正しい計算というのは表現不可能です
その上で、パソコンは2進法で処理します
もっと言うと、電子回路は2進数で表現する世界です
- 電圧が高い/低い
- N極/S極
- 平ら/出っ張ってる
- 明るい/暗い
勿論、それらは程度や強さで細かく分ける事が出来ますが、大量生産を前提にすると個体の誤差が出てくるのでメーカーやロットが異なっていても上手く動作するようにと考えると「電圧が{凄く高い/中間/凄く低い}」の3つに分類され、凄く高いと凄く低いはどのメーカーのどのロットの物でも高いと低いをうまく伝える事が出来ます
ところが、中間は出力する個体と受け取る個体によっては高いとなったり低いとなったりします
これではうまく伝わらないので使えませんよね
そういう事から2値が扱いやすいため2進数で処理を行うように作られています
その為、2進数系のN進数以外を扱う場合は直接扱えないことから単純な処理とならずに複雑な処理を行う必要が出てきます
つまり、処理が遅くなります
他の方が書いている必要が無いというのは処理速度を遅くしてでも正確な10進数の取り扱いが必要なのか?という観点で一般的にはそこまで必要ではなく、処理速度の方が重要となることが多いため大抵の言語では基本的な数値の扱いは2進数となっています
例えばラーメン屋に行ってメンの重さをミリグラム単位で正確な量を要求しますか?
それとも気づかない程度の差があっても構わないとしますか?
注文してから2時間かかるけどミリグラム単位で正確な量の麺を提供するラーメン屋と、5分で出てくるけど10ミリ前後の誤差があるラーメン屋さんとどちらへ行きますか?
これだけだと同じお金を払ってるのに10グラム少ない量しか提供されるのは許さないという人もいるかもしれません
ですが、お昼休憩だった場合は2時間待ちだと提供までの待ち時間の半分しかたっていないのに休憩時間が終わってしまうなら正確なお店には行けませんよね?
それと同じでお金の計算が主な目的であるのならば処理が遅くなっても誤差が出てはいけません
でも、ほぼリアルタイムに処理を行いたい場合だと処理が重くなって間に合わなくなってしまうと困ります
多少の誤差が出ても構わない内容であるのなら誤差には目をつむって速度を重視するでしょう
でも言語で使用する数値型が全て10進で非常に遅い場合は常に間に合わない事態に陥ってしまいます
それが適材適所でしょう、全て10新型にする必要が無いとする根拠です
尤も全ての人がちょっとしたメールのやり取りに毛が生えた程度の事しかしないPCの使い道しかないのであるならば、処理が遅くってもRyzen Threadripperの最上位モデルの64コア128スレッドで並列処理してしまえば良いというのであれば常に10進で扱うのでもありかもしれませんが、通常はそうでもありませんし、もっと重い処理を行いたい人も多いはずです
動画見るだけでもデコード処理で重いはずですが、これが10倍以上の重さになったら低解像度の動画をカクカクでしか見れない世界になるかもしれません