DOBON.NETプログラミング掲示板過去ログ
"Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
題名: "Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
著者: おか
日時: 2006/09/06 17:50:52
ID: 17462
この記事の返信元:
(なし)
この記事への返信:
[17463]
Re[1]: "Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
ぽぴ王子
2006/09/06 18:07:43
ツリーを表示
環境/言語:[WinXP、C#、Framework2.0]
分類:[.NET]
お世話になっております。
下記のように記述するとコンパイル時に警告で
"Bitwise-or 演算子が sign-extended オペランドで使用されています。まず、小さい符号なしの型をキャストしてみてください。"
がでるのですが、どうすればでなくなるのでしょうか?
short型のs2を(int)でキャストしたのですが警告はでなくはならなかったです。
・・・警告の内容もいまいちなにをすればよいかわかりません。
動作自体は期待していた挙動でした。
ご存知の方がいらっしゃいましたら、ご教授宜しくお願いします。
--------------------------------
static void Main(string[] args)
{
short s1 = 1;
short s2 = 2;
int i1 = s1 << 16;
int i2 = i1 | s2;
Console.WriteLine(i2.ToString());
}
題名: Re[1]: "Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
著者: ぽぴ王子
URL:
http://www.ne.jp/asahi/popi/prince/
日時: 2006/09/06 18:07:43
ID: 17463
この記事の返信元:
[17462]
"Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
おか
2006/09/06 17:50:52
この記事への返信:
[17466]
Re[2]: "Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
おか
2006/09/07 8:27:24
[解決]
ツリーを表示
こんにちは。
とりあえずリファレンス。
http://msdn2.microsoft.com/ja-jp/library/wdc6717a.aspx
これによれば、OR 演算子を使っている部分での暗黙の拡張が怪しいと言われているようですね。
親切にも「まず、小さい符号なしの型をキャストしてみてください」と言われているわけで、言われるままに「小さい符号なしの型をキャスト」してみてください。
int i2 = i1 | (ushort)s2;
こんな感じで。
題名: Re[2]: "Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
著者: おか
日時: 2006/09/07 8:27:24
ID: 17466
この記事の返信元:
[17463]
Re[1]: "Bitwise-or 演算子が sign-extended オペランドで。。。"の警告について
ぽぴ王子
2006/09/06 18:07:43
この記事への返信:
(なし)
ツリーを表示
返信ありがとうございます。
解決しました。
ありがとうございました。
解決済み!
DOBON.NET
|
プログラミング道
|
プログラミング掲示板
分類:[.NET]
お世話になっております。
下記のように記述するとコンパイル時に警告で
"Bitwise-or 演算子が sign-extended オペランドで使用されています。まず、小さい符号なしの型をキャストしてみてください。"
がでるのですが、どうすればでなくなるのでしょうか?
short型のs2を(int)でキャストしたのですが警告はでなくはならなかったです。
・・・警告の内容もいまいちなにをすればよいかわかりません。
動作自体は期待していた挙動でした。
ご存知の方がいらっしゃいましたら、ご教授宜しくお願いします。
--------------------------------
static void Main(string[] args)
{
short s1 = 1;
short s2 = 2;
int i1 = s1 << 16;
int i2 = i1 | s2;
Console.WriteLine(i2.ToString());
}