あなたの質問は、整数、文字列、またはその他のタイプの値の表現が与えられた場合、タイプと値を判別できるという概念に基づいていると思います。できません。
ほとんどのデジタル コンピュータ アーキテクチャでは、データはビットであり、連続した 8 ビット バイトでアクセスされます。バイトを取り、それを負でない整数と考えて、2 進数、8 進数、10 進数、16 進数などで表すことができます。バイナリは、ビットがそれ自体で値を表す場合に使用されます。16 進数は、そのコンパクトさと 2 進数への変換の容易さから好まれます。Decimal は、バイト全体が人間にとっていくつかの基数の値を持つ場合に使用され、負の整数の選択になります。
では、1 バイトのファイルまたはメモリ アドレスの 97 (10 進数) というバイトが与えられた場合、その型と値は何でしょうか? 知るための唯一の方法は、ある種の共有された理解、つまり合意、宣言、規約、仕様、データ マップなどを通じてです。つまり、コミュニケーションです。完全な通信は、データと、バイトの解釈方法を示す付属または個別のメタデータで構成されます。
97₁₀ = 61₁₆ = 01100001₂ は次のようになります。
- 8 ビットの符号なし整数: 97₁₀
- 8 ビットの 2 の補数の符号付き整数: 97₁₀
- UTF-8 コード単位として: たまたま Unicode コードポイントのすべてのコード単位: 'a' (U+0061) 'LATIN SMALL LETTER A'
- ASCII コード単位として: (すべての ASCII コードポイントは 1 つの 8 ビット コード単位を取ります): 'a'
- ISO 8859-1 コード単位として: (すべての ISO 8859-1 コードポイントは 1 つの 8 ビット コード単位を取ります): 'a'
- 8ビットにパックできるものなら何でも。
それで、あなたの質問を次のように言い換えます: "a" を表す 97 と整数 97 を表す 97 の違いは何ですか? 答えは、バイトではなく、メタデータにあります。