現在地

16進の表記方法について


カテゴリー:

今回からしばらくはちょっと趣向を変え、ソフトウェアについて書いてみたいと思います。1回目は「ソースコード等に16進を記述する際の記述方法」です。

  • (F300)16
    コンピュータを離れるとこれが一般的でしょうか。
    ただコンピュータ以外で16進表記を使うことはあまり無いので、昔数学か何かでやったはずですが完全に忘れていました。さすがに当時の教科書は残していないと思うので、当時の表記方法が同じだったのかはわかりません。
  • 0xF300
    C言語をはじめ最近の言語では一般的な記述方法ですね。
    「x」をつけずに「0」で始まると8進だとみなされます。私は8進なんて使わないという人でもこれは知っておく必要があります。桁をそろえるなどの理由で「012」などと書くと(12)10ではなく(12)8=(10)10と解釈されるからです。
    定数「0」は実は8進定数として処理されているのだとか。結果は変わらないですが。

    今ではアセンブラもこの記述方法が多いです。

  • 16'hF300
    Verilog HDL(ハードウェア記述言語)での記述方法、ビット幅(この例では16ビット)を明記できるのが特徴です。また「h」の代わりに「b」で2進、「o」で8進の表記ができるほか、「d」で10進であることを明確にすることもできます。
  • 0F300H
    これはIntelやZilogのアセンブラの記述方法です。末尾に「H」を付けて16進であることを示すのですが、先頭が「A」~「F」の場合はこの例のように前に「0」を付します。「F300H」のように英字から始まるとラベル等の識別子と区別がつかなくなるためですね。
    8ビットのPC-8001mk2から16ビットのPC-386NOTE Aまでメインで使った(というかアセンブラを使った)パソコンはIntel,Zilog系だったので長くお世話になった書き方でした。
  • $F300
    頭に「$」を付けるのはMotorolaのアセンブラの記述方法です。
    期間は短かったですが、MC68kボードでアセンブラを多用しましたので思い出深いですね。TL/1言語も16進はこれだったと思います。
  • &HF300
    Microsoft系のBASICでの記述方法です。「&O」で8進も記述できたはずですが使った記憶は無いです。「&B」で2進も使えるシステムもあったようですが、少なくともN-BASIC系では使えませんでした。
  • &F300
    上と似ていますがこれはSharpのポケットコンピュータのBASICの記述方法です。
    8進に対応しないなら「H」「O」で区別する必要も無いので省略したのでしょう。
    MC68kボードのTiny BASICでもこの記述ができるように拡張した記憶もあります。

コメントを追加

Plain text

  • HTMLタグは利用できません。
  • ウェブページアドレスとメールアドレスは、自動的にハイパーリンクに変換されます。
  • 行と段落は自動的に折り返されます。
※ コメントは原則公開です。個別のご相談などは「ご意見・ご要望」からお願いします。