カスタマーサポートセンター

FAQ~よくある質問~ | FAQマスタ詳細表示

FAQ詳細情報

ID 10810553
FAQカテゴリ(大) コンパイラ
最終更新日 2016-02-14

質問内容

TN46979: Cソースでバイナリ表記をしたいのですが

回答内容

ターゲット:すべて
コンポーネント:コンパイラ
公開日:2014年2月12日10時41分

 

概要
IARシステムズのコンパイラでは、Cソースにバイナリ表記(例えば0b01010101用)を使用することはできません。

 

背景
0b01010101のようなバイナリ値の記法は、ISOのC言語規格 (C99/C89共) でサポートされていません。 IARも、IARの独自拡張でサポートしませんでした。(そのような拡張は、Cソースの可搬性を下げるからです。)

 

どうすればよいか
回答は簡単で、例えば値 5を以下のように定義します。

#define b0000000000000101 0x0005

... この #define は、どんなバイナリの値のものも追加することができます。

 

テンプレート
.zip ファイルをダウンロードしてください。2つのファイルが含まれています。
• ファイル Binary_values_8_bit.txt は正の 8 ビットのバイナリ値をを定義しています。
• ファイル Binary_values_16_bit.txt は正の 16 ビットのバイナリ値をを定義しています。

 

使い方
このテキストファイルは、Cのヘッダファイルではないことはに注意してください。(大きいほうのファイルは 65.536個も #defines があり取り扱いにくいです)。

代わりに必要な #define をテキストファイルからコピーして、プロジェクトに追加します。 この方法で、不必要な #define によるオーバーヘッドを避けることができます。

 

すべての製品名は、各社の商標または登録商標です。

参考資料URL