問題タブ [unary-operator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C ++に「通常の」単項論理演算子はありますか
つまり、否定論理演算子があることは誰もが知っており、次の!
ように使用できます。
これを許可する演算子はありますか:
重要ではないかもしれませんが、ただ疑問に思っています!
c - printf の単項演算子
誰でも次の出力を説明できますか。私はすべてを推論しようとしましたが、「x」に式の値が割り当てられている後半部分を説明できますが、printfステートメントで答えがどのように異なるかを理解できません!!!
コンパイラが異なれば、動作も異なる場合があります。誰かがコンパイラのこの動作を説明できれば素晴らしいでしょう.
openSUSE 12.1 (アスパラガス) (i586) で gcc (SUSE Linux) 4.6.2 を使用しています。
コード:
出力:
ありがとう
c++ - int& の単項 + 演算子
次のステートメントがあり、コンパイルされます。
コンパイラ エラーが発生しないのはなぜですか?
c++ - 0x80000000の単項マイナス(符号付きおよび符号なし)
n3337.pdfドラフト5.3.1.8には、次のように記載されています。
単項演算子のオペランドは、
-
算術型またはスコープなしの列挙型でなければならず、結果はそのオペランドの否定になります。汎整数拡張は、積分オペランドまたは列挙オペランドで実行されます。符号なし数量の負の数は、2ⁿからその値を減算することによって計算されます。ここで、nはプロモートされたオペランドのビット数です。結果のタイプは、プロモートされたオペランドのタイプです。
場合によってはそれで十分です。unsigned intが32ビット幅(-(0x80000000u)) == 0x80000000u
だとしたら、そうではありませんか?
それでも、符号なし0x80000000の単項マイナスについては何も見つかりません。また、C99標準ドラフトn1336.pdf、6.5.3.3はそれについて何も言っていないようです:
単項演算子の結果は、その(プロモートされた)オペランドの負数です。整数拡張はオペランドで実行され、結果はプロモートされたタイプになります。
UPDATE2:unsignedintが32ビット幅であると仮定しましょう。したがって、問題は、C(符号付きおよび符号なし)の単項マイナス、およびC ++(符号付きのみ)の単項マイナスについてはどうでしょうか。
UPDATE1:実行時の動作とコンパイル時の動作(つまり、定数畳み込み)の両方が興味深いものです。
c++ - C ++のみ:0x80000000の単項マイナス
この質問はおそらく言語弁護士のためのものです。
signedとunsignedintの両方が32ビット幅であると仮定します。n3337.pdfドラフト5.3.1.8に記載されているように、
(-(0x80000000u)) = 0x100000000u-0x80000000u = 0x80000000u
しかし、私は質問に対する答えを見つけることができません:署名された0x80000000の単項マイナスは何になりますか?それはUB、実装定義、または...?
問題は主に実行時の計算に関するものです。
言う
それでも、他の2つのケースについてのコメントは大歓迎です。
コンパイル時定数畳み込み、たとえば、
-(INT_MIN)
のコンパイル時の計算
constexpr
(コンパイル時の定数畳み込みとの違いがある場合)。
(重複に投票する前に、 https://meta.stackexchange.com/questions/123713/is-splitting-a-question-a-good-practiceを参照してください。)
php - javascript と PHP の三項演算子、異なる出力
単項ifを使ってPHPでFizzbuzzをやりたかったのですが、出力が期待したものではなく、理由がわからなかったので、コードをjavascriptにコピーアンドペーストしたところ、結果は期待どおりになりました。なんで?
出力
c# - Null をチェックする条件付きステートメント
短い1行の条件ステートメントを作成する方法を見つけようとしています。
この日付が null でない場合は、フィルタを現在のフィルタ リストに追加します。
fromDt ?? filters.Add(FilterType.DateFrom, fromDt);
これを行う方法はありますか?私は私ができることを知っています..
(fromDt != null) ? "something" : "something_else"
、しかし、「else」は必要ありません??
。null チェックに演算子を使用したいだけです。
java - HibernateQLで単項演算子を無効にします
次のhqlを使用してブールフィールドを切り替えようとしています。
残念ながら、「QuerySyntaxException:予期しないトークン:近くにありません...」がスローされました。
私の質問は、そのような式をサポートする休止状態の単項演算子はありますか?または、よく知られているトリックはありますか?
sqlはそのようなクエリをサポートします(postgresql):
c++ - 構文解析ツリーの単項および2進数のマイナス
次のような式を含む解析ツリーを作成しています
3 - 4 * 8
また
8 * -5
また
-(10 * 1)
単項マイナスとバイナリマイナスを区別する方法が必要です。私の文法の進め方は、最初に2進数のマイナスに到達しますが、それを変更して、最後の変数を保持するフラグ変数を追加することを考えています。
例:もしそうなら5 - 6
フラグは5を保持しており、マイナスが表示され、フラグが数値の場合は、単項をスキップして2進数になります。
ただし、これをC++で実装する方法が正確にはわかりません。
どんな助けでも大歓迎です。
ありがとう