アスキーコード?

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら

トピックに返信する


答えを正確にご入力ください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[flash]: OFF
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: アスキーコード?

Re: アスキーコード?

#4

by Dixq (管理人) » 8年前

printf("%x", '1');
とすれば期待の結果が表示されると思いますよ。
%xは16進数表示を意味します。

Re: アスキーコード?

#3

by hazimete » 8年前

ありがとうございます。解決いたしました。^^

Re: アスキーコード?

#2

by みけCAT » 8年前

1のアスキーコードは0x31 (16進数で31、10進数で49)であり、%dは渡されたint型の数を10進数で出力するので、
アスキーコードが使われている場合、printf("%d", '1');は49を出力します。

%cは渡されたint型の数を文字コードとする文字(通常、指定された値の1バイト)を出力します。
ASCIIコードの1は制御コードのSOH (Start Of Heading) です。
たまたま使った端末がSOHを・で表示する仕様になっていたのでしょう。

アスキーコード?

#1

by hazimete » 8年前

printf("%d", '1');  が49
printf("%c", 1);  が・
になる理由がわかりません教えてください。

1のアスキーコードは31なのでprintf("%d", '1'); は31になると思っていました。

ページトップ