ここから本文です

unsigned long hoge=0x0UL;.....<=ULは何のためにあるの?

ho1********さん

2009/9/2422:13:55

unsigned long hoge=0x0UL;.....<=ULは何のためにあるの?

printf("%d",hoge);では0が出力され、ULの意味がわかりません。
コンパイルエラーがでないので、なにか意味があると思うんですが、、、
ULは何のためにあるのか、ぜひ教えてください

ついでに、0xは8進か16進か、どっちでしたっけ?
もしよろしければ、これもお願いします。

閲覧数:
6,896
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

tan********さん

2009/9/2423:36:00

>unsigned long hoge=0x0UL;.....<=ULは何のためにあるの?
リテラル定数の型をunsigned long型に明示的に指定するためのサフィックス(接尾子)です。
サフィックスを省略した場合は,int型になります。
上記のコードの場合は省略しても自動的にキャストが行われますので動作は同じですが,intの範囲を超える定数を指定する場合などには明確にサフィックスを付ける必要があります。

>ついでに、0xは8進か16進か、どっちでしたっけ?
16進数です。
ちなみに,8進数のプリフィックスは"0"です。

質問した人からのコメント

2009/9/24 23:57:09

驚く なるほど、C言語って、奥が深いですね
あなたみたいなプログラマーになれるよう、精進します

ベストアンサー以外の回答

1〜1件/1件中

saw********さん

2009/9/2423:34:08

ULは定数の末尾に付けて
この定数はunsigned long型ですよ。
と宣言しています。

0xは16進数です。
0だけ付けると8進数です。

あわせて知りたい

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる