Cソースでバイナリ表記をするには

テクニカル・ノート 46979

アーキテクチャ:

All

コンポーネント:

compiler

更新日:

2018/08/13 5:15

はじめに

IAR Systemsのコンパイラを使用する場合、Cのソースでバイナリ表記(例: 0b01010101)を使用することはできません。

背景

C言語では、C99およびC89のいずれにおいても、0b01010101という表記はサポートされていません。IAR Systemsでは、そのような表記をサポートするための機能拡張は行われていません(そのような機能拡張を行うと、Cのソースの移植性が低下します)。

必要な作業

解決方法は簡単です。例えば、5のバイナリ値は以下のように実装できます。

#define b0000000000000101 0x0005

このような#defineを追加することで、アプリケーション内で任意のバイナリ値を使用できます。

テンプレート

作業を簡単に行えるようにするため、この zip ファイル をダウンロードしてください。このzipファイルには2つのファイルが含まれています。

  • Binary_values_8_bit.txt: 正の8ビットバイナリ値の定義が含まれています。
  • Binary_values_16_bit.txt: 正の16ビットバイナリ値の定義が含まれています。

使用法

これらのファイルは、C言語でいうヘッダファイルではありません(大きい方のファイルには、64,000個を超える#defineが記述されており、取扱いにくいものです)。
これをヘッダファイルとして使用するのではなく、このテキストファイルから、必要な#defineをプロジェクトのヘッダファイルにコピーしてください。こうすると、使用しない#defineは取り込まれないため、ビルド時間のペナルティは発生しません。

全ての製品名は、それぞれの所有者の商標または登録商標です。

 

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。