カレンダー

09月 │2017年10月│ 11月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

 プロフィール

はしもと

Author:はしもと
ユーザインタフェース系のお仕事をしてます.関心領域は画像処理,拡張現実感,ヒューマンコンピュータインタラクション,エンタテインメントコンピューティングあたり.モノ書きもやってます.

 工学ナビ

工学ナビは工学系の技術のチュートリアルを扱うサイトです.

 作ったもの

 Twitter

 

 天気予報


 ブログ内検索

 カテゴリー

最新コメント

 RSSフィード

 リンク

このブログをリンクに追加する




工学ナビの中の人 はしもとのブログです. いろんなコトを研究的,工学的な視点で見つめます.
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

%iってなによ
 C言語入門で最初に出てくる関数にprintfがあります。printfといえば「%d」とか「%f」といったデータの出力フォーマットを指定する変換指定子なるものがあります。

例えば符号付き10進数で表示したいときは

printf("%d",a);

なんてするわけです。

 この%で始まる変換指定子に「%i」があることを最近知ったのですが,これの解釈についてはどうやら2種類あるようなんです。

 手元にある「C/C++プログラミング辞典 第2版」では「%i → intを符号付8進整数で出力」と書いてあるので,「-9」は「-11」で表示されるだろうと思って

int a = -9;
printf("%i",a);

とか書いてみたら思いっきり「-9」って表示されてやんの。
ナニコレ? 10進表記ですか?

そこで有能な後輩に捜査を依頼したところ,以下のような報告書が。


%iが10進数============================
printf(1)
http://docs.hp.com/ja/B2355-90851/printf.1.html

C言語編 第40章 printf関数の詳細
http://www.geocities.jp/ky_webid/c/040.html

Manpage of PRINTF
http://www.linux.or.jp/JM/html/LDP_man-pages/man3/printf.3.html

バックナンバー288
http://mukun_mmg.at.infoseek.co.jp/mmg/bncpp/16/288.html

基礎知識
http://www.oct.zaq.ne.jp/mizuho/webpage/anchoko/c/io.html

C++言語解説:テキスト付録
http://monpe.cliff.jp/2002/cpptext/app_c_stream.html

%iが8進数============================
C言語 - PukiWiki
http://sunlee.muraoka.info.waseda.ac.jp/~kawakoya/research/pukiwiki/
pukiwiki.php?C%B8%C0%B8%EC


printf()関数
http://wisdom.sakura.ne.jp/programming/c/c57.html

結論
・いろんなサイトを見る限りおそらく%iは10進数だと思います.
また,いくつかのサイトには通常使用しないと書かれています.



うーん? 結局「%i」は10進数表記なの? iはintegerのiなの?
つか「%dと冗長」ってどういう意味?

よくわからないので僕の中で「%i」の存在を闇に葬りました。
(知ってる人いたら教えてください)


この記事に対するコメント



この記事に対するコメントの投稿














管理者にだけ表示を許可する


この記事に対するトラックバック
トラックバックURL
→http://kougaku.blog28.fc2.com/tb.php/123-0b89f4bd
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。