No.4ベストアンサー
- 回答日時:
「0x0000ffffはlongだよ」と言う意味。
intが16ビットの世界だと
longの変数 = 0x0000ffff << 8;
は「想定外」の結果になる。
なぜなら
0x0000ffff << 8
の部分がintで計算され、0xffffを8ビット左にシフトし、上位8ビットが溢れて消え、計算結果はintの幅で0xfff0になる。
で、それを32ビットの「longの変数」に入れるのだから、longの変数は「0x0000fff0」になってしまう。
なので
longの変数 = 0x0000ffffL << 8;
と書いて「0x0000ffffはlongだ」と言っておけば、最初からlongで計算してくれる。そして、計算結果も正しく「0x000ffff0」になって、その結果がlongの変数に代入される。
そういう訳で「L」があるかないかは、けっこう重要だったりします。
なお、intもlongも、どっちも32ビットな世界では、余り意味がありません。
No.3
- 回答日時:
longであることの明示的表現
sizeof (int) < sizeof (long) な環境で必要です
参考URL:http://www.wdic.org/w/TECH/%E3%82%B5%E3%83%95%E3 …
この回答へのお礼
お礼日時:2008/12/19 12:24
さっそくのご回答ありがとうございました.
確かに,sizeof (int) < sizeof (long) な環境でのプログラムでした.
No.2
- 回答日時:
http://www.open-std.org/JTC1/SC22/WG14/www/docs/ …
の6.4.4.1によると
====================
The type of an integer constant is the first of the corresponding list in which its value can be represented.
整数定数の型は,その型で表現できるとされたリストの中の最初のものが選択される
=====================
ここで表を見ると
何もつけないときはintやunsigned intとして解釈される事がある一方,
Lをつけた時はそのように解釈される事がないことがわかります。
の6.4.4.1によると
====================
The type of an integer constant is the first of the corresponding list in which its value can be represented.
整数定数の型は,その型で表現できるとされたリストの中の最初のものが選択される
=====================
ここで表を見ると
何もつけないときはintやunsigned intとして解釈される事がある一方,
Lをつけた時はそのように解釈される事がないことがわかります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 英語 この文が解釈できません 3 2022/12/06 03:40
- 英語 drop a japan flickってどう言う意味ですか? 2 2022/10/24 13:58
- 英語 【 論・表 for the day の意味 】 She often took both of us 2 2022/08/14 17:36
- 英語 "not to worry"の元の表現等について 1 2023/06/22 14:44
- 英語 home where you've rented one out for a week? 4 2022/08/06 09:13
- C言語・C++・C# int tff(int clk) { static int state = 0; //状態 stat 1 2022/07/11 21:14
- PHP in_arrayについて教えて下さい。 1 2023/03/31 13:10
- PHP phpのメールフォームの完了画面でメール受信のコードを書いています。 1 2023/05/31 11:39
- 英語 提示文の"just"の意味について 3 2023/05/05 14:57
- 英語 【 英語 forの意味 】 I will buy my watch back for the sum 3 2023/01/02 22:06
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
EXCELなどで「返す」という表現
-
バッチファイルでウインドウを...
-
排他的論理和 BCC(水平パリテ...
-
アドオン利率を実質年率に変換
-
lexとyaccでのプログラミング
-
C言語で電卓を作成する。修正お...
-
CRCについて教えてください
-
CCurの引値を文字列にする時と...
-
Visual C++でdebugとreleaseで...
-
Java 電卓の連続計算
-
サインカーブを計算したい
-
C言語についてです。 再帰を使...
-
0x0000ffffLの"L"って・・・
-
再帰呼び出しの計算量
-
入射角反射角
-
matlabで計算終了
-
prolog言語で積分計算
-
順列のプログラムについて(VB)
-
VBとVBAの違い
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
65536は2の何乗なのでしょうか?
-
変化させるセルが変化しない
-
排他的論理和 BCC(水平パリテ...
-
VBAの再計算が反映されない件に...
-
VBAで関数をつくる
-
バッチファイルでウインドウを...
-
モジュラス103の計算とは何でし...
-
EXCELなどで「返す」という表現
-
数値計算の高速化 (cos, sin, exp)
-
傾いた四角形内の範囲の条件式
-
骨折リスク評価のFRAXについて...
-
matlab計算での進捗状況を知りたい
-
Excel VBAにてFFT
-
C言語についてです。 再帰を使...
-
C言語について 下の画像は do-w...
-
アドオン利率を実質年率に変換
-
エクセルで特定のセルのみを任...
-
電卓でmodの計算
-
引き放し法による除算アルゴリ...
-
y=(x^2 +3x+1)^4を微分の定義を...
おすすめ情報