• ベストアンサー

バイナリデータについて教えてください

バイナリデータについて調べてみると、テキストデータ以外のデータはすべてそうだと書いてあります。 私の理解は、 ・パソコンのデータは結局0か1である。 ・テキストデータは、0か1のデータがテキストビューワーで開くと文字になるように並んでいるデータである ・バイナリデータは0と1で表現されるデータである。   (たまたま表す進数が2進数以外の場合も有る) <結論> ・よって、テキストデータもバイナリデータの一部である この結論は正しいのでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • YoxoY
  • ベストアンサー率42% (43/101)
回答No.4

私は、その結論は正しいと思います。 Windowsでは改行コードはCRLFと表記して0x0D 0x0A(10進数の13と10)、 unixではLF(0x0A)のみです。 漢字やひらがななどの日本語文字については、 WindowsではMS漢字(Shift-JISといって日本工業規格の設定からずらした マイクロソフト仕様の漢字コード)で、unixではEUC(Extended UNIX Code) が主でしょう。それぞれが元々は外国製ですから日本語用に拡張したんですね。 ascii(アスキー)コードなら(半角英数といくつかの文字)だけなら どのOSでも変わらないでしょう。 Windowsではいろんな文字コードが扱えるフリーソフトがあります。 unixならnkfというフリーソフトとかでコード変換してから利用しますね。 コンピュータ内部では結局バイナリでしょう。

mk1234
質問者

お礼

回答ありがとうございます。 これまでの皆さんの回答から、私の理解で大筋合っているようですが、厳密には違っているのかも?とも思っています。 質問の動機は#2、3のお礼通りなので、ファイル内容を比較するという目的からすると、質問通りの理解で良いのではと思っています。

その他の回答 (3)

  • shige_70
  • ベストアンサー率17% (168/946)
回答No.3

私は、その結論は違うと思います。 その結論ですと、コンピュータで扱うすべてのデータはバイナリデータであることになってしまい、バイナリデータという表現自体が無用なものになってしまいます。 従って、あなたの理解も若干違うところがあると思います。 テキストデータは、文字列を表現するデータです。 テキストデータでないものを便宜上バイナリデータと読んでいます。基本は0と1の羅列なのはどちらも同じです。 ここで問題なのは、文字列表現の定義です。 たとえば、ウインドウ図のメモ帳などで作成したデータはテキストデータですが、そのままunixサーバやMac、あるいはメインフレームのような汎用ホスト機などにもっていって表示させようとしてもうまく表示されず、文字化けしてまるでバイナリデータのように見える場合が多いです。逆にウインドウズ以外で作成したテキストデータをウインドウズのメモ帳で開いても同様です。 それでも、そのデータを作成した環境では立派なテキストデータです。 さらにいえば、たとえば日本語でかいた文章のテキストデータを外国の人の使っているパソコンで開いても、そのパソコンが日本語に対応していなければやはりバイナリデータのように表示されるだけです。 つまり、そもそもテキストデータの定義自体があいまいで、利用者の都合や主観に基づいて決まってしまうので、そのへんを厳密に考えようとしても良い結論はでないと思います。

mk1234
質問者

補足

回答ありがとうございます。 質問の動機は#2のお礼の通りです。 2つのファイル内容が同じかどうかを比較する場合、それがテキストファイルなのか画像データなのか等々を明確にしなければ比較できなといわれたことが発端です。

回答No.2

理解の仕方は正しいようですが、結論だけ見ると誤解があるような気がします。 具体的には、43という情報があったとき、 バイナリデータ:  43という数値と考えて、その数値を2進数で表現したもの テキストデータ:  "43"という文字列として考え、"4"という文字を表す数値、"3"という文字表す数値  を順番に並べたもの(その数値は2進数で表現されている) ということです。

mk1234
質問者

お礼

回答ありがとうございます。 元々の質問の動機は、 2つのファイルがファイル名等に関係無く同一な内容かどうかを調べる場合に、そのファイルがテキストであろうが、画像であろうが、バイナリエディターで開いて同じ数字の並びであれば同じ内容である。 ということが正しいかどうかでした。 そう言う意味で、テキストファイルといえども、わざわざテキスト形式で開いて比較しなくてもバイナリで開いて比較すれば良いのかどうかが知りたかったのですが。。。

noname#4923
noname#4923
回答No.1

正解ですね。「一部」というのも不要でしょう。 ただし実際は便宜上区別されているようです。 「「binary」は「2進法の」の意味。 コンピュータ内で処理されるデータは、すべて0と1からなる2進数である。ただし「バイナリ」という語は、ASCIIコードからなる文字データと相対するものとして用いられることもある。」

mk1234
質問者

お礼

正解ですか。安心しました。 状況によっては、便宜上区別されるのですね。 回答ありがとうございました。

関連するQ&A