非常に基本的な質問で大変恐縮なのですが…
以下のページを読んでる際に (Python における) バイナリとは何か、ということがよくわからなくなりました。
7.1. struct — Interpret bytes as packed binary data
基本的な質問は以下の通りです。
前提として「全てのデータはバイナリのはずなのに、なぜ他のデータ型と分けて『バイナリ』だけ切り出して扱うことがあるのか」という疑問が根底にあります。
- 「バイト文字列」と「バイナリ」は同一の内容を指すか
- 「バイナリデータ」の対義語は「テキストデータ」か
- 例えば、同じ 0 を指す時に「バイナリ」と「整数型」で扱う/表現する時の違いは何か
- どのタイミングでバイナリとして扱う必要性/メリットがあるのか
以下のページには下記の通り記載があり、バイト文字列と他のデータ型を分けて扱っているため、両者は異なるものだと理解しています。
struct モジュールはバイト文字列と、数値や文字列といったネイティブの Python データ型を変換する関数を提供します。
以下の記事から推測するに、具体的には、バイナリと整数型では、例えば、符号情報など、整数の取扱いに特化した機構が整数型には備わっているのではないかと推測しています。
バイナリ形式で書かれたファイルから,データを読みたい時があります.asciiではデータサイズが大きくなりすぎることが有りますので….
以下のコメントが恐らく正しいのですが、それでは逆に他のデータ型 (int など) は何がバイナリとは異なるのか、どのような付加情報が追加されているのか、というのがわからなくなりました。
つまり,その内容が実際には文字であったとしても,データ形式に立ち入らずに単なるビットパターンとして処理すればそれはバイナリ列だと説明しています。
また、それとは別にバイナリデータとテキストデータという対比もあり、それがあることもうなずけ、今回の文脈と同一なのか悩んでいます。
特に整数型や文字列型の仕様や、基本的なバイナリ周りの理解などは、コンピュータ サイエンスの基本中の基本だと思いますので、聞くこと自体が恥ずかしいことは承知の上なのですが、どなたかご指導いただけますと幸いです…。
特に仕様面を説明しているリンクなどもあれば嬉しいですが、まずは冒頭の疑問解消を優先できればと思ってます。