これは低レベルのコースであると想定されており、クラスの3日目です。ただし、「nullで終了する文字列「R5」を16進、2進、および8進表記で記述します。ASCIIコードが使用されていると想定します」と求められます。
これを行う方法を学ぶためにどこに行けばいいのかわかりません。助言がありますか?ありがとう。
これは低レベルのコースであると想定されており、クラスの3日目です。ただし、「nullで終了する文字列「R5」を16進、2進、および8進表記で記述します。ASCIIコードが使用されていると想定します」と求められます。
これを行う方法を学ぶためにどこに行けばいいのかわかりません。助言がありますか?ありがとう。
これには、ASCIIテーブルから適切なエントリを検索する必要があるようです。ほとんどの場合、このテーブルには16進数と8進数、および文字自体がリストされています。
ASCIIは、文字の表現方法を定義する標準的な方法であり、ほとんどのテーブルでは、対応する16進数、10進数、および8進数の値に対して文字が一覧表示されます。最初の128は標準で、次の128は拡張文字(英語のキーボードにマップされない奇妙な文字)です。
「ASCIIテーブル」をグーグルで検索すると、さまざまなリンクが殺到します。www.asciitable.comで見た一番上のものには、バイナリを除いて、必要なものがすべて揃っているようです。
ほとんどの場合、バイナリが一覧表示されることはありませんが、16進値をバイナリに変換することはかなり学術的です。Windows電卓がこれを喜んで行います。
特定の文字列をより直接的に翻訳するには、各文字(NULLを含む)を個別に検索し、それぞれを個別に翻訳します。
NULL で終わる ASCII 文字列は、1 文字につき 1 バイトと NULL 用の 1 バイトで格納されます。したがって、「R」、「5」、および 0 の 3 バイトを出力することになります。
ASCII チャートで 'R' と '5'を調べて、これらの文字の ASCII での数値を確認します。次に、3 バイトを 3 つの異なる方法 (16 進数、2 進数、8 進数にそれぞれ 1 つずつ) で書き出します。
それが役立つことを願っています。
最終的にコンピュータにとって、すべては数字です。文字や記号などの文字を表すために、これらの文字のエンコーディングまたは番号付けについて合意することができます。たとえば、1 は「A」、2 は「B」などを意味する新しいエンコーディングを発明できます。ASCII は、文字を数字にマッピングするために一般的に使用されるテキスト エンコーディングの 1 つです。この場合、'R'
、'5'
、およびnull
(ヌル文字は文字列の終わりを示します。これは値 0 で表されます。ASCII テーブルを見ると、数値は82
、53
、0
です。
String: R, 5, <null>
Decimal numbers: 82, 53, 0
私たちの通常の数体系は、10 進数、つまり 10 進数です。これは、各桁が次の桁の 10 倍の値 (1、10、100、1000 など) を表すことを意味します。代替基数には、8 (8 進数)、16 (16 進数)、および 2 (2 進数) が含まれます。基数を変換する簡単な方法がありますが、変換を行う電卓を簡単に見つけることもできます。教科書の関連セクションを確認するか、ウィキペディアの記事をチェックしてください。10 進数 82 の例では、16 進数値は 52 です (これは 5*16 + 2 = 8*10 + 2 を意味します)。多くの場合、「0x」のプレフィックスが表示されます。これは、次の数字が基数 16 であることを明確にするために一般的に使用されます。
面白い。では、NULL で終わる文字列 "R5" は単に "52, 35, 30" と言うのが正しいでしょうか、それとももっと正しい形式があるのでしょうか? お待ちいただいてありがとうございます。–</p>
別のコメントで指摘したように、実際の値0 は、文字列内の文字「0」を表す値 0x30 ではなく、文字列の終わりを示します。ゼロ ( 0
) の値は、数字の基数に関係なく同じであることに注意してください。
String: R, 5, <null>
Decimal : 82, 53, 0
Hexadecimal: 52, 35, 0