問題タブ [unsigned]

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 投票する
3 に答える
4718 参照

java - Java の符号なし数値について

符号付き数値を符号なしに変換する方法を理解したい。

私がこれを持っているとしましょう:

符号なしにするには、「より大きな」データ型「short」を選択し、AND 演算子に値 0x00ff を適用する必要があります。

番号を無署名にするのはなぜですか?

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

mysql - mySQL 5.0.45 LAST_INSERT_ID() および signed int より大きい値

signed int 値 2147483647 を超えた自動インクリメント インデックスで LAST_INSERT_ID を使用しようとしています。この列は unsigned int です。ただし、LAST_INSERT_ID() は無効な負の値を返しています。これを調査したところ、これがこの関数の性質であることを示すいくつかのコメントが見つかりました。しかし、公式に文書化されていることがわかりません。数年前にさかのぼるいくつかのバグ レポートがまだ未解決です。

したがって、これが実際に既知のバグであるかどうか、および/またはこれについて何かできることがあるかどうかを知る必要があります。mySQL を新しいバージョンにアップグレードする必要がありますか?

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 投票する
8 に答える
2571 参照

c - 符号なし整数を使用する場合、ループ条件が 0 で停止するには?

N から 0 (包括的) に移動する必要があるループがあります。私のi変数は、size_t通常は符号なしの型です。現在、次のコードを使用しています。

あれは正しいですか?状態を処理するためのより良い方法はありますか?

ありがとう、

ヴィンセント。

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

java - Preon の符号付き整数と符号なし整数

Cで記述されたサーバーと通信するプロジェクトにPreonを使用したい.プロトコルはマシンのネイティブエンディアンに依存し(java.nio.ByteOrder.getNative()JVMがサーバーと同じエンディアンを持っているという仮定の下でこれで解決できます)、uint64_tデータに使用します長さとint32_tステータス コード (負の値はエラーを示します)。

Preon のドキュメントには署名に関する情報が見つかりませんでした。ソースコードをざっと見てみると、符号nl.flotsam.preon.buffer.DefaultBitBuffer付きシフト (<<および>>) を使用していることがわかりました。また、いくつかのメソッドの javadoc コメントは、符号付き整数を使用nl.flotsam.preon.buffer.BitBufferしていることを示していますが、javadoc コメントnl.flotsam.preon.buffer.BitBufferは、BitBuffer符号なし整数を使用していると述べています。これは私を混乱させました。

Preon のデフォルトの整数形式は何ですか? uint64_tとをどのように表すint32_tか?

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

c++ - デフォルトの char を unsigned にする必要があるコードを、この要件を持たないコードベースに移植する

私は、署名付き/署名なしの文字に関する多くの質問を経験しました。C++ には 3 つの異なる char 型があることを理解しています。現在、Visual Studio でコンパイルされた大きなコード ベースがあります。「デフォルトの char unsigned」設定は「いいえ」に設定されています。ここで、特定のプロジェクトをコード ベースに追加することになっています (現在のツール セットの一部になるように統合します)。このプロジェクトには、デフォルトの char を unsigned にする必要があることが強く強調されているドキュメントが付属しています。

今、私は疑問に思い始めました: 作者は、char を unsigned にする必要があるのに、なぜ「unsigned char」ではなく「char」を使用したのでしょうか? コードベースを変更して「デフォルトの署名なし文字」設定を「はい」に設定すると、何が問題になる可能性がありますか? そして、コードベースに追加することになっているプロジェクト全体で、すべての「char」を unsigned char に変更すると、何が問題になる可能性がありますか?

実際、私がおそらく尋ねるべきことは、「何も壊さずにこのプロジェクトをコードベースに追加するにはどうすればよいですか」ということでしたが、それは解決策を求めていることになり、何も学びません;)

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

c++ - c++ uint 、 unsigned int 、 int

こんにちは、ベクトルとこれらのベクトルの要素のインデックスを多く扱うプログラムがありますが、疑問に思っていました:

  1. との間に違いはuintありますかunsigned int
  2. int上記のタイプのいずれかを使用するか、コンパイラーが int 値をより効率的に処理すると言う人がいると読んだだけで使用する方が良いですが、使用するintと、負の idx を常にチェックする必要があり、これは苦痛です。
  3. イテレータの方が優れていると思いますか? 通常のインデックス作成よりも効率的vectorx[idx]ですか?

PSソフトウェアは大規模なデータプロセスを処理し、優れたパフォーマンスは必須の要件です

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

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

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

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

c# - 「int」と「uint」/「long」と「ulong」の違いは何ですか?

intlong(32 ビットおよび 64 ビットの数値)については知っていますがuint、 と とは何ulongですか?