問題タブ [signed]

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.

0 投票する
4 に答える
597 参照

.net - インデックスとしての符号なし数値と符号付き数値

.Net で符号付きの数値をインデックスとして使用する理由は何ですか?

Python では、負の数を送信することで配列の末尾からインデックスを作成できますが、.Net ではそうではありません。.Net が後でそのような機能を追加するのは簡単ではありません。おそらく、インデックス作成で特別なルールを使用して他のコードを壊す可能性があるためです (ええ、悪い考えですが、私はそれが起こると思います)。

サイズが 2,147,483,647 を超える配列にインデックスを付ける必要があったわけではありませんが、符号付きの数値を選択する理由が本当にわかりません。

コードで符号付きの数値を使用する方が普通だからでしょうか?

編集:これらのリンクを見つけました:

C/C++ での符号なし反復の危険性

符号付きワードの長さとインデックス

Edit2: OK、マシュー・フラッシェンが投稿したスレッドからの他のいくつかの正当な理由:

  • C ライクな言語であるという歴史的な理由
  • c との相互運用
0 投票する
1 に答える
376 参照

lotus-notes - Lotus Notes のアクセス制御セクションに誰が署名したかを抽出するにはどうすればよいですか?

Lotus Notes データベースの内容を XML にエクスポートしたいと考えています。結果のファイルで、特定のアクセス制御セクションに誰が署名したかを確認したいと思います。デジタル署名がエクスポートされないことはわかっています。私が知る必要があるのは、誰がセクションに署名し、いつ署名したかだけです。

DXL Exporter を使用して、セクションに署名した人の名前と日付をエクスポートするにはどうすればよいですか? 何を探す?

0 投票する
2 に答える
2479 参照

mysql - コンセンサス?MySQL、署名付き VS 署名なしの主キー/外部キー

署名されたキー値と署名されていないキー値に関して、誰もが今何をしているかについてのスレッドをいくつか見ました。unsigned は、同じコストで 2 倍の行数を許可するため、最適であるように思われます。署名付きキーには何か利点がありますか?

標準的なコンセンサスはありますか?「いつもそうだった」ので、署名されたのが答えのようです

0 投票する
6 に答える
14822 参照

python - Pythonで符号付き整数を2の補数で16進数として出力するには?

負の整数 (4 バイト) があり、その 2 の補数表現の 16 進形式が必要です。

でも「FF…」が見たい。

0 投票する
2 に答える
2204 参照

c++ - C++ 符号付き 32 ビット整数値の読み取り

バイト配列から読み取りたい s32 というマルチバイト プリミティブ型があります。

仕様は次のとおりです。

  • これは 32 ビットの符号付き整数値で、リトルエンディアン順に格納されます。

  • 負の整数は、2 の補数を使用して表されます。

  • 大きさに応じて 1 ~ 5 バイトを使用します。各バイトは、下位 7 ビットが値に寄与します。上位 (8 番目) ビットが設定されている場合、次のバイトも値の一部です。

  • 符号拡張が適用されます。エンコードの最後のバイトの 7 番目のビットが伝播され、デコードされた値の 32 ビットが埋められます。

U32 - unsigned 32-bit の場合、私はこれを考え出しました (どんなコメントも歓迎します!) が、S32 用にそれを変更する方法がわかりません。

みんな、ありがとう!

0 投票する
13 に答える
23744 参照

c - ポインター (アドレス) が負になることはありますか?

失敗した場合と初期化されていない場合に特別な値を返すことができるようにしたい関数があります (成功するとポインターを返します)。

現在NULL、失敗した場合と初期化されていない場合に返されます-1が、これはうまくいくようです...しかし、システムをだましている可能性があります。IIRC、住所は常に正数ですよね?(ただし、コンパイラはアドレスを -1 に設定することを許可しているため、これは奇妙に思えます)。

[アップデート]

私が持っていた別のアイデア (-1 が危険な場合) は、グローバル スコープをmalloccharにし、そのアドレスをセンチネルとして使用することです。@

0 投票する
2 に答える
701 参照

numbers - 算術オーバーフロー

2の補数を使用して正と負の数を加算すると、算術オーバーフローが発生しないのはなぜですか。可能であれば、8ビットの符号付き整数(バイト)の例を提供してください。

0 投票する
6 に答える
1061 参照

c++ - C / C ++と比較して安全な符号付き/符号なしの比較を追加すると、言語または既存のコードが壊れますか?

署名された/署名されていない比較に関するこの質問を読んだ後(彼らは私が言うだろう数日ごとに出てきます):

なぜ適切な署名された署名されていない比較がなく、代わりにこの恐ろしい混乱があるのだろうか?この小さなプログラムから出力を取得します。

私の標準コンパイラ(gcc、64ビット)でコンパイルすると、次のようになります。

32ビット用にコンパイルした場合、結果は次の点を除いて同じです。

「どうやって?」これらすべての中で簡単に見つけることができます。C99標準のセクション6.3またはC++の第4章に移動し、オペランドが共通型に変換される方法を説明する句を掘り下げてください。共通型が負の値を再解釈すると、これが機能しなくなる可能性があります。

しかし、「なぜ?」はどうですか。ご覧のとおり、「<」はすべてのケースの50%で失敗します。また、タイプの具体的なサイズに依存するため、プラットフォームに依存します。考慮すべき点は次のとおりです。

  • 変換と比較のプロセスは、驚き最小の原則の代表的な例ではありません。

  • 私は、テロリストによって書かれて(short)-1 > (unsigned)1ないという命題に依存しているコードがそこにあるとは思わない。

  • テンプレートコードを使用してC++を使用している場合、これはすべてひどいものです。正しい「<」を編成するには、型特性の魔法が必要だからです。


結局のところ、さまざまなタイプの符号付き値と符号なし値を比較するの簡単です。

事前チェックは安価であり、a> = 0が静的に証明できる場合は、コンパイラーによって最適化することもできます。

だからここに私の質問があります:

C / C ++と比較して安全な符号付き/符号なしの比較を追加すると、言語または既存のコードが壊れますか?

(「言語が壊れますか」とは、この変更に対応するために、言語のさまざまな部分に大規模な変更を加える必要があることを意味します)


更新: これを古き良きTurbo-C ++ 3.0で実行し、次の出力を取得しました:

なぜ(signed char)-1 < (unsigned char) == 0ここにあるのですか?

0 投票する
1 に答える
4457 参照

32bit-64bit - 32ビットの符号なし、符号付き、64ビットの違いの実際的な例

私はかなり新しいプログラマーですが、署名付き、署名なし、32ビットと64ビットの違いと使用法について、誰かが実用的な説明/例を教えてくれるかどうか疑問に思っていました。

つまり、昨年Twitterで開発者が64ビットに切り替えた方法についての記事を読みましたが、その理由と具体的な性質がわかりませんでした。

ありがとうございました!

0 投票する
5 に答える
6063 参照

c - C の符号なし値と符号付き値 (出力)

の値はy? これはどうしてですか?