電子書籍の厳選無料作品が豊富!

学問の部でお聞きするのはとてもお恥ずかしいのですが、電算機では数値を「00012130」の様に処理しているということですが、数学としては数というものを上の桁(前ゼロ)を省略したものとして本来は認識しているのでしょうか?

A 回答 (6件)

計算機上と数学的な考え方は別ものと考えます。


数学的に厳密な定義(表現)というものは存在しませんからね。
答えが2なら、2.0でも間違いな要素はないですし。
整数や実数で表わしなさい、とでも書かれていない限り。
あ、書かれていても間違いだとも言えませんか。

ただ上の場合、2.0はあっても02と書く人は居ないと思います。
それもそれで間違いではないと思いますが…
ごめんなさい、考えが今ひとつうまく伝わらないです。

ちなみにそのいわゆる上の桁のゼロ(前ゼロ)を省略することを
「ゼロサプレス」と言います。
数学的には通常はゼロサプレスをした数値を表わすと思います。
    • good
    • 0
この回答へのお礼

みなさんご丁寧に有難う御座います。変な質問ですよね。

お礼日時:2009/03/22 09:17

 数学では、数字を並べたものは「数をあるひとつの表現の仕方で表現したもの」ということであって、数そのものとは別ものと考えます。

そして、だからこそ、
1+1=2
が成り立つんです。「=」の左にあるのは「1+1」という表現、「=」の右にあるのは「2」という表現で、表現は異なっているけれども、どちらも同じ数を表現している。そして「=」は「(表現はどうでもいいけど)左右の数は同じだ」ということを表している訳です。

(とは言いながら、数の最も基本的な表現を決めておかないと不便なもんですから、現代の標準的な数学では、 http://oshiete1.goo.ne.jp/qa217225.html のANo.7に出てくるs( )、あるいはこのご質問のANo.3や http://oshiete1.goo.ne.jp/qa2769678.html のANo.5に出てくる ’ を使って表します。)

 さて、コンピュータの内部でアタマに0をくっつけて桁数をそろえた表現をするのが便利なことが多い理由については、既にいろいろ解説が出てますね。けれども、何が何でもそうに決まってるという訳じゃありませんで、もっと別の表現を使うことだってあります。

 ま、んなわけで、「2」も「0002」も、同じ数を異なる表現で表したもの、という風に見るってのが、「数学としては数というものをどう認識しているか」というご質問の答です。決して「省略」ということじゃない。
    • good
    • 0
この回答へのお礼

ご丁寧に有難う御座います。すぐに早速こんなにレスが付くとは思いませんでした。

お礼日時:2009/03/22 09:20

初等的にご説明いたします。


コンピュータには、ケタ数が固定されたメモリーが使われています。メモリーは、様々な状態や数値を記憶するのに使われてます。メモリーを数値として使う場合、使ってない上位のケタには不要な数値が入らぬようにするため0で埋め尽す必要があるのです。

たとえば、十進数で12は、メモリー上では二進数の1100として記録されるのですが、メモリーのケタ数が8ケタある場合、00001100というデータを書き込まなければなりません。
もし上位の0000を書き込まなかったら以下のような不具合が発生します。

メモリーは使い回しされるので、以前に別の数値10111011という二進数8桁が書き込まれていたと仮定しましょう。
この後、二進数1100を書き込むとき、この4桁だけ書き込むと上位4桁には以前の値が残ってしまい、10111100という値になります。これを十進数に直すと188ですから、誤った数値になってしまいます。

計算処理のコアになる部分をこれまでさまざまな場面でプログラミングしてきましたが、使ってない上位ケタを0で埋めるのをソフトウェアの論理設計で見落として計算エラーを出してしまった苦い経験があります。
    • good
    • 0
この回答へのお礼

やはりコンピューター独自のものと考えた方がいいのですね。有難う御座いました。

お礼日時:2009/03/22 09:18

2とか3とかありましたか?



01001011
など、八桁ではありませんでしたか?
http://ja.wikipedia.org/wiki/8%E3%83%93%E3%83%83 …
8ビットマシンでは、八桁をひとまとまりにして計算します。

この場合、八個ずつをセットにするので、上の桁の0は意味があります。
    • good
    • 0
この回答へのお礼

有難う御座います。数学とは別ですかね。

お礼日時:2009/03/22 09:21

数学だと、そもそも、10進数表現というのは数の表現の方法のひとつであって、数そのものではないと考えられているのではないでしょうか?


数学の分野によっては、自然数を「0+1+1+1+1」とか「0''''''」のように表す場合もあるようです。
10進数などでは、無限小数というのを導入するために有限小数は下に0が無限に続くものの省略形とされる場合もあるようです。上の桁もおっしゃるように0がついてもつかなくても同等ですが、0以外の数字が上の桁に無限に続く表現は(少なくとも普通は)使いませんけど。

あと、計算機内では整数は2進数表現が多い(あえて10進数表現で内部保存する場合もありますが)ので「00012130」の様に処理しているとは限りません。また、プログラム言語によっても表記が違います。例えば、C言語では0を頭につけると10進数ではなく8進数と見なされますし、小数点をつけた数は浮動小数点数と見なされます。
    • good
    • 0
この回答へのお礼

ちょっと難しいですけど、有難う御座います。参考になりました。

お礼日時:2009/03/22 09:23

計算機は間違いなく前ゼロをつけて数値を扱っています。


数学(と言うよりは日常使う10進数)はゼロサプレスで扱っています。
過去数千年の歴史ですね。
因みに2進数や8進数、16進数を扱うときには前ゼロはサプレスしないことも多いです。
尤もこれらは計算機との絡みで扱うことが多いせいも有りますが。
    • good
    • 0
この回答へのお礼

サプレス?調べてみます。有難う御座いました。

お礼日時:2009/03/22 09:24

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