掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ビット操作後のAND (ID:46941)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
ン まず、ノとフラでは表せる値の範囲が違います。 ヲサノコヲサュイアエキエクウカエクョョイアエキエクウカエキ ヲサフラコヲサーョョエイケエケカキイケオヲサ トでは数値型の範囲は厳密にチェックされます。 たとえウイで表せるとしても、負の値をフラ型の変数に代入するのは違反です。 ルールィアゥコヲサシフト演算ヲサヲサヲサヲサの結果はと同じ型になる これにより ヲサノィ」、クーゥヲサヲサイエ の結果はノ型の負数ィュイアエキエクウカエクゥとなり、そのままフラ型の変数に代入しようとすれば範囲エラーになります。 さて、、ニニーーーーーーヲサとのを取った場合には、さらに二つのルールが関係します。 ィイゥヲサ定数式の型は、その定数を表せる中で最も範囲の狭い型になる ィウゥヲサ整数型同士の演算の結果は、両辺がとり得るすべての値を含む最も小さな範囲の型になる ルールィイゥにより、、ニニーーーーーーの型は符号なしウイ(フラ相当)になります。 そしてルールィウゥによって、ノとフラ両方の範囲を包含するノカエが結果となります。 ヲサノィュイアエキエクウカエクゥヲサヲサフラィ、ニニーーーーーーゥヲサスヲサノカエィ、クーーーーーーーゥ 結果はフラで表せる範囲に収まっているので、これを代入しても範囲エラーになりません。 で、ビット演算が目的であれば、最初から符号付きィノゥではなく符号なしィフラゥにキャストすれば こういう面倒なことは起こらないのではないでしょうか。 スススススススススススススススススススススススススススススススススススススススス ニコ ヤ トコ イーアオッーアッーオィ月ゥ アキコウウコーケ 書込者ノト:ロ 「「 ン モコ さん、さん ありがとうございました。 環境は、ラ7ィウイゥ+トナフミネノヲサリナウ でした。 トナフミネノでは整数型は厳密にチェックされると言う事で、以後気を付けたいと思います。 ただ、例えば、ノ型の変数へ「イアエキエクウカエク「を代入したり、フラ型の変数に「ュイアエキエクウカエク「を代入しようとすると、エラーになる分けですが、プログラム的にはいずれも単に「、クーーーーーーー「として与えられるだけですが、その変数型との不一致によってエラーになる分けですね。 蛇足ですが、とすると、エラーメッセージが適当ではない様に思えます。 変数型が違う旨のエラーメッセージの方が適当ではないでしょうかね。 実際、その様なエラーメッセージがありますし。 レンジチェックエラーだと、何か配列の要素の範囲外をアクセスした様な印象です。 ご解説頂き大変ありがとうございました。 スススススススススススススススススススススススススススススススススススススススス ニコ トコ イーアオッーアッーオィ月ゥ アクコウイコウキ 書込者ノト:ロ 」 ァ」ハノ ン では蛇足ついでに。「レンジチェックエラー」になるのは、トにおける整数型が、配列の添字と同じ「部分範囲型」のサブセットだからです。 部分範囲型というのは、「ここからここまでの値をとる順序型」と定義された型です。 例えば次の文は、アからアイまでの値をとる部分範囲型を定義しています。 ヲサヲサヤヘヲサスヲサアョョアイサ この範囲外の数値をヤヘ型の変数に代入しようとしたら、範囲エラーになります。 ヲサヲサコヲサヤヘサ ヲサョョョ ヲサヲサコスヲサアサヲサッッヲサマヒ ヲサヲサコスヲサアイサヲサッッヲサマヒ ヲサョョョ ヲサヲサコスヲサーサヲサッッヲサ範囲エラー。 ヲサヲサコスヲサアウサヲサッッヲサ範囲エラー。 この場合のエラーメッセージとして「レンジチェックエラー」というのは至極妥当ですよね? 「変数型が違う」だとおかしなことになります(アとかアイとかを代入するのも、ヤヘヲサコスヲサノヲサで型が違うから駄目じゃん。ヲサとなってしまいます)。 整数型も同じように、 ヲサヲサ ヲサヲサヲサヲサノヲサスヲサュイアエキエクウカエクョョイアエキエクウカエキサ ヲサヲサヲサヲサフラヲサスヲサーョョエイケエケカキイケオサ といった部分範囲型として定義されています(少なくとも、そう定義されているように扱われます)。 そして、配列の要素の添字も「部分範囲型」で定義されます。 ヲサヲサ ヲサヲサヲサヲサコヲサローョョカンヲサヲサモサヲサッッヲサこの「ーョョカ」は部分範囲型 だからどちらの場合も、範囲を超えていたら同じ「レンジチェックエラー」になるわけです。 スススススススススススススススススススススススススススススススススススススススス ニコ yヤ トコ イーアオッーアッーカィ火ゥ ーケコオイコエイ 書込者ノト:ロ 「「 ン さん 大変ありがとうございます。 なるほど、変数型の定義内容まで思い至りませんでした。 ”配列の要素の添字も「部分範囲型」で定義”と言うところで分かった気がします。 ちなみに、 ウヲサヲサコスヲサヲサィヲサノィヲサロヲサヘヲサォヲサウヲサンゥヲサヲサイエヲサゥサ を ウヲサヲサコスヲサヲサィヲサフラィヲサロヲサヘヲサォヲサウヲサンゥヲサヲサイエヲサゥサ としたら、 「、ニーーーーーー「で「「を取らなくてもマヒでした。(「「は念の為、取りますが) ありがとうございました。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.