問題タブ [bit-shift]
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.
bit-shift - シフト演算子はどのように実装されていますか?
いつ 4<<2 を実行したか知りたいのですが、その下で正確に何が起こるのでしょうか?? 乗算が実行されているか、または値がどのように計算されているか。シフト演算子の実装に関するリファレンスがある場合は、返信してください。前もって感謝します
vb.net - JavaScript の >>> 演算子を VB.NET に変換するにはどうすればよいですか?
JavaScript からVB.NETへのコード変換を行っています。>>> 操作に行き詰まっています。
以下のサンプルコードと私の試みを参照してください。
JavaScript:
VB.NETでの私の試み:
私は何を間違っていますか?
c# - 符号付き型のF#ビット演算子が1で埋められるのはなぜですか?
私はビット演算でF#ドキュメントを見ていました:
ビット単位の右シフト演算子。結果は、ビットが2番目のオペランドのビット数だけ右にシフトされた最初のオペランドです。最下位位置からシフトされたビットは、最上位位置に回転されません。符号なしタイプの場合、最上位ビットにはゼロが埋め込まれます。符号付きタイプの場合、最上位ビットには1が埋め込まれます。2番目の引数の型はint32です。
MSBがゼロで埋められているC++言語(そしておそらくCも)と比較して、この設計選択の背後にある動機は何でしたか?例えば:
ここで-2147483648=
マスクは1073741824に等しい
ここで1073741824=
これで、同じコードをF#(またはC#)で作成すると、実際にMSBにコードが埋め込まれ、-1073741824になります。
ここで-1073741824=
c# - Java と C# にビットシフト演算子があるのはなぜですか?
整数乗算(除算を一時的に忘れる)の違いはまだシフトを支持していますか?もしそうなら、違いはどれくらいですか?
ほとんどの場合、(C#/ Java)バイトコードコンパイラまたはjitがそれをキャッチするべきではない場合でも、それは単にそのような低レベルの最適化のように思えますか?
注: C# (gmcs Mono C# コンパイラ バージョン 2.6.7.0 を使用) のコンパイル済み出力をテストしましたが、乗算の例では、2 の倍数で乗算する場合でも、乗算にシフトを使用しませんでした。
C# http://csharp.pastebin.com/hcrRnPrb
cil http://csharp.pastebin.com/0js9F2c1
PS私はそれをバイトで使用するといくらか便利かもしれないことを忘れていましたが、数値で使用するにはまだ問題があります。
bit-shift - 符号付き整数の論理右シフト演算
符号付き整数-28での3演算による論理右シフト。正解は何ですか?
- +203
- +83
- +3
- -3
2の補数-28は11100100です。論理右シフト演算を適用すると、上記のいずれの答えも得られません。
java - >>はJavaで何をしますか?
わかりました>>
、またはシフトが何を意味するのか調べてみましたが、このサイトで説明されているように頭を悩ませています: http://www.janeg.ca/scjp/oper/shift.html
子供と話している場合、どのような説明になりますか?
java - バイト変数に適用される符号なし右シフトの動作
次のJavaコードの抜粋を検討してください
出力:
期待される出力:
どうやって?1111 0001
符号なし右シフト後の0000 1111
バイナリ0x0f
のb0xff
として
objective-c - 算術シフト
論理右シフトと算術右シフトの違いは何ですか?
c - C enum 定義の値に Bitwise-Shift 演算子を使用するのはなぜですか?
Apple は、列挙型定義で Bitwise-Shift 演算子を使用することがあります。たとえば、Core Graphics の一部であるCGDirectDisplay.hファイルでは、次のようになります。
「通常の」列挙型でインクリメントするintのようなものを単純に使用しないのはなぜですか?
c - 左シフト操作で予期しない出力が発生...?
左シフトe1<<e2
は と同等だと読みましたe1* 2e2
。しかし、コードの場合:
出力は40ですが、私によれば30である必要があります。そして、x<<4
それは80です (ただし、予想されるのは40です)。
forx<<1
とx<<2
output は予想どおり10と20ですが。
このロジックを説明してください。